-3
如何從公共,私人或受保護的範圍內檢測方法?PHP如何檢測是否從公共或私人範圍調用方法?
例如...
class Foo {
public function getPassword(){
$scope = [??????];
switch($scope){
case 'public':
return "*****";
break;
case 'protected': case 'private':
return "IamPassword";
break;
}
}
}
在類,我可能需要可能不是由類的模板引擎可見,但訪問的性能。
我不知道PHP,但在Java和C#等語言中,您無法知道函數的調用方。唯一的可能性是檢查呼叫跟蹤並從那裏得到它,但一旦你不得不採取這些措施,你通常會在設計中出現缺陷。 –
這不是一個好的觀點,變量作用域是控制你對類的屬性和方法的訪問的構造性鍵,你不應該檢查範圍是什麼,你應該只尊重它。如果你從課堂外調用一個私人方法,它會拋出致命錯誤,所以無法證實。你所能做的就是設置一個公共功能,一旦公共職能打開課程的大門,就可以調用私人功能。 –
如果這對你的代碼有影響,那麼你的設計中有一種令人討厭的氣味 –