以下の例が実際にどのように動作しているか、どのように動的に何かを行うことができますか? call_user_func
またはcall_user_func_array
を使用しても、これは発生しません。PHP 5.3でインスタンスメソッドを使用すると奇妙な結果が発生する
<?php
class Person
{
public $name = "George";
public function say_hi()
{
return ExtraMethods::hi();
}
}
class ExtraMethods
{
public function hi()
{
return "Hi, ".$this->name;
}
}
$george = new Person();
echo $george->say_hi();
?>
これは、となるはずである:インスタンスメソッドhi
だけでなく、静的に(これはPHPで発生する可能性があることに驚いていない)と呼ばれることができる理由
Hi, George
は疑問に思うが、私は
$this
を使用することができる午前理由
manualから
ああ、完璧です。私はこれが何らかのレガシーサポートのために行われたと思いますか? – tamagokun
まあ、PHP4のレガシーかもしれませんが、 'static'キーワード/静的メソッドは利用できませんでした。 – Wrikken