【发布时间】:2012-01-12 20:12:51
【问题描述】:
想知道下面的示例实际上是如何工作的,以及如何能够动态地执行类似的操作。使用call_user_func 或call_user_func_array 不允许这种情况发生。
<?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, George
想知道为什么实例方法 hi 不仅可以静态调用(这在 PHP 中会发生并不奇怪),而且为什么我能够使用 $this
【问题讨论】: