1
Python、Js、PHPの関数では、すべてファーストクラスのオブジェクトと言います。 PHPの例が正しいことを確認したいと思います。このコードをPHPに移植する他の方法はありますか?入れ子関数、PHPのファーストクラス関数
パイソン3:
def a():
print("init")
def b():
print("inside")
def c():
print("inception")
return c
return b
a()()()
結果
init
inside
inception
[Finished in 0.1s]
のJavascript(ノード):
function a() {
console.log("init")
function b()
{
console.log("inside")
function c()
{
console.log("inception")
}
return c
}
return b
}
s = a()()()
結果
init
inside
inception
[Finished in 0.2s]
PHP 5.5:
Parse error: syntax error, unexpected '('
が
0 PHPに再度お試しすることができますfunction a()
{
echo "init".PHP_EOL;
$x = function()
{
echo "inside".PHP_EOL;
$y = function()
{
echo "inception".PHP_EOL;
};
echo "b".PHP_EOL;
return $y;
};
return $x;
}
a()()();
結果
結果
init
inside
inception
[Finished in 0.1s]
ことは、PHPで、ネストされた関数を呼び出すための唯一の方法ですか?
UPDATE PHPでは、PythonやJSと同じように関数を返すことができますか?最初にクロージャーとして変数に代入する必要があります。
PHP 7 +の互換性に関するドキュメントリンクを共有できますか? – c3cris
https://wiki.php.net/rfc/uniform_variable_syntax – ShiraNai7
私はこれをドキュメントで見つけることができなかった理由はありますか? – c3cris