関数がクラス関数内で宣言されたときに、関数内で宣言された関数のスコープが異なっているのはなぜかと思いました。例えば関数内で宣言された関数のスコープ
:これが起こる理由
function test() // global function
{
function myTest() // global function. Why?
{
print("Hello world");
}
}
class CMyTestClass
{
public function test() // method of CMyTestClass
{
function myTest() // This declaration will be global! Why?
{
print("Hello world");
}
}
}
}
誰が私にこれを説明することはできますか? ありがとうございます。
Greetz。
好奇心のために、メソッド内で関数を宣言することの利点は何ですか? –
@Gordon関数が定義されるように、最初に関数を呼び出さなければなりません。 – Wiseguy
@MikeB - おそらく他の理由があるかもしれませんが、このアプローチは一種の「匿名機能」の試みかもしれません。そのための正しい書式は次のとおりです:http://php.net/manual/en/functions.anonymous.php – rinogo