1
我正在使用overflow __set和__get方法,我希望能夠模擬私有/公共類變量。從PHP對象內部或外部運行
我確信這個問題的答案已經存在,但我一直在挖,找不到東西。讓我試着展示一個我想要做的事情的例子。
<?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'
我想什麼是方法當物體內對從外部被稱爲稱爲不同的功能。我知道我可以添加另一個參數來表示行爲的變化,或者創建另一個功能。但如果我在這裏試圖做的是以某種方式而不是其他兩種選擇,那就太棒了!
debug_backtrace應該爲您提供所需的信息,但即使想要這樣做也是主要設計問題的標誌。它可能只是兩種不同的方法。 – Corbin
您可以創建一個私有函數並使用'__call'方法。但我很好奇在什麼場景這是需要的... – Passerby
你爲什麼關心呼叫者是誰? – Orangepill