我正在使用溢出 __set 和 __get 方法,我希望能够模拟私有/公共类变量。
我确信这个问题的答案已经存在,但我一直在挖掘并且找不到任何东西。让我试着展示一个例子,说明我正在尝试做的事情。
<?php
class Person
{
public function test()
{
return $this->whereami();
}
public function whereami()
{
if (method_called_inside_class()) {
return 'private';
} else {
return 'public';
}
}
}
$person = new Person();
$person->test(); // 'private'
$person->whereami(); // 'public'
我想要的是在对象内调用与从外部调用时方法的不同功能。我知道我可以添加另一个参数来表示行为的变化,或者创建另一个函数。但是,如果我在这里尝试做的事情以某种方式是可能的,而不是其他两个选项,那就太棒了!