magic-methods

    7熱度

    3回答

    在PHP中,我可以做這樣的事情: class MyClass { function __call($name, $args) { print('you tried to call a the method named: ' . $name); } } $Obj = new MyClass(); $Obj->nonexistant_method();

    55熱度

    4回答

    >>> class A(object): pass ... >>> A.__dict__ <dictproxy object at 0x173ef30> >>> A.__dict__.__dict__ Traceback (most recent call last): File "<string>", line 1, in <fragment> AttributeError

    0熱度

    2回答

    爲了簡單起見,假設我在Web應用程序中使用了2個類User和UserStatus。 <?php // library code: class UserStatus { protected $_status = NULL; private function fetchDataFromDB() { // regular DB stuff $this->_

    0熱度

    1回答

    我正在尋找一種方法來監視當我的類中的變量被設置。 例如,如果我有下面的類: class MyClass { public $myVariable; } 而且地方在我的代碼我做的: $class = new MyClass(); $class->myVariable = "value"; 我希望能夠「勾」到MYVARIABLE的二傳手。所以當我調用$ class-> myVar

    1熱度

    4回答

    其他語言的便捷功能之一是可以爲屬性創建get和set方法。在試圖找到複製的PHP此功能的好方法,我偶然發現了這一點:http://www.php.net/manual/en/language.oop5.magic.php#98442 這裏是我的那個類的故障: <?php class ObjectWithGetSetProperties { public function __get

    5熱度

    4回答

    我有一個定製的MVC PHP框架,我正在重寫過程中,並且有一個關於性能和魔術方法的問題。對於框架的模型部分,我想如果魔法會導致太多的性能值得使用。我的意思是訪問(讀取和寫入)模型數據將成爲最常見的事情之一。是否使用__get/__set魔法方法對MVC框架的模型部分等重度使用功能的性能影響過大?

    0熱度

    3回答

    林」想知道如果這是可能的: 我已經成功地使用__set()魔術方法將值設置爲一個類的屬性: class View { private $data; public function __set($key, $value) { $this->data[$key] = $value; } } 所以我能到: $view = new View()

    2熱度

    3回答

    可以使用__get,__call將調用重定向到某些屬性/函數。 有沒有辦法做到這一點的類? 我想將代碼中some_class_name的所有提及轉換爲MY_VERSION_some_class_name(不僅對於一個類,它是模式)。 如果方法/屬性是此重命名策略的目標,這很容易。 你能想到一種方法來實現它在PHP中的類嗎? 編輯:我需要這個參考不同情況下類的不同變體。我需要一個類名來解析這個類的不

    3熱度

    1回答

    因此,我託管拒絕更新到PHP 5.3(這是惱人的,但在同一時間罰款;我很靈活),但唯一真正讓我關閉的是沒有__callStatic可用。 我有模塊加載,我想鞏固到一個類(即有一個類加載模塊,然後通過調用主類__callStatic方法訪問這些模塊的功能),但當我從本地測試服務器上傳到我的服務器,顯然__callStatic方法不起作用。 是否有替代方案是還是靜態?我喜歡乾淨的代碼尋找雙冒號(即re

    1熱度

    2回答

    我有一個運行完美 PHP腳本,但我得到2個錯誤: Warning: The magic method __set() must have public visibility and cannot be static in C:\wamp\www\class.XMLHttpRequest.php on line 63 Warning: The magic method __get()