class Test
{
public $public = 'public';
protected $protected = 'protected';
private $private = 'private';
public function __construct()
{
call_user_func(function()
{
var_dump($this);
});
}
}
new Test();
На сервере modApache, PHP 5.3, при выполнении скрипта ошибка:
Notice: Undefined variable: this in /test_this.php on line 18 NULL
На мой взгляд так и должно быть...
Но при смене на FastCGI, PHP 7.0, ошибка пропадает и $this становится доступным внутри функции:
object(Test)#1 (3) { ["public"]=> string(6) "public" ["protected":protected]=> string(9) "protected" ["private":"Test":private]=> string(7) "private" }
Как можно настроить область видимости переменных в php.ini или может в другом месте?