PHPでcall_user_func関数を試してみたところ、次の単純なコードを実行すると次のエラーが発生します。
<?php
class A
{
public $var;
private function printHi()
{
echo "Hello";
}
public function __construct($string)
{
$this->var = $string;
}
public function foo()
{
call_user_func($this->var);
}
}
$a = new A('printHi');
$a->foo();
?>
printHiというクラスの外部で関数を作成すると、正常に機能することはわかっていますが、クラスのprint hiを参照しているため、「this」が登録されていない理由がわかりません。