PHP (v 5.5.9-1ubuntu4.11) では、関数または関数の配列でデータ メンバーを初期化することはできません。これら 2 つは、以下に基づいて PHP 構文に違反していますsyntax error, unexpected 'function' (T_FUNCTION), expecting ')'
。
class Foo {
var $a = array(
function() {}
);
}
と:
class Foo {
var $a = function() {};
}
それにもかかわらず、これは許可されています:
$a = array(function() {});
クラスのデータ メンバーに関数を割り当てることができないのはなぜですか?
再現性を容易にするために:
echo '<?php class Foo { var $a = array(function() {}); } ?>' | php
echo '<?php class Foo { var $a = function() {}; } ?>' | php
echo '<?php $a = array(function() {}); ?>' | php