magic-methods

    1熱度

    2回答

    我最近與另一位開發人員討論了PHP的__isset()和__get()魔術方法之間的關係。它是由一個我們擁有的類通過__get()方法延遲加載其他對象(延遲加載意味着該屬性在第一次訪問之前不存在,此時對象被實例化並返回)。不過,我們對__isset()應該返回尚未加載的屬性有不同意見。該屬性在技術上不存在(它不是集合,或者至少它已設置,但當前爲NULL),但對它的調用在技術上也會成功(禁止任何例外

    36熱度

    1回答

    可能重複: defining 「boolness」 of a class in python 我想這應該打印 「假」,爲什麼它打印 「真」? >>> class Foo(object): ... def __bool__(self): ... return False ... >>> f = Foo() >>> if f: ... print "True" ... else: .

    3熱度

    1回答

    有這樣的事嗎? 某種魔術功能,允許您在未定義的函數調用錯誤被引發之前更改內容? 像__call,但對於正常的功能:)

    1熱度

    1回答

    到目前爲止系統,我有這樣的: class Foo{ private $plugin_methods = array(); public function registerPlugin($caller, $method){ list($object, $caller) = explode('.', $caller); $this->plugin_metho

    -1熱度

    2回答

    例如這個類中的方法: class A{ public function __call($func, $args){ if($func == 'something') call_user_func_array($this->_some_magic, $args); } public function _some_magic(){ ..

    2熱度

    3回答

    我想以某種方式隱藏父級方法,以便爲在父級上定義的方法調用子類的__call魔術方法。例如: class C { function foo() { echo "foo\n"; } } class D extends C { function __call($method, $args) { echo "called $name\n"; } } $d = new D()

    0熱度

    1回答

    由於我正在處理一段需要裝飾器模式的代碼,因此我想通過處理__call魔法方法使其非常簡單。事實上,當我使用裝飾器模式(這裏,添加一個單例,添加一些方法並禁止其他一些方法)時,一些方法不需要被重寫。所以使用__call是簡化代碼的好方法。 當某些方法需要通過引用傳遞的參數時,會引發我的情況。 舉個例子,我創建了一個XPDO類來減少PDO。這不是我以前的情況,但我不能證明這一點。 <?php cl

    1熱度

    1回答

    我有兩種模式:客戶端和合同。 客戶端有3個屬性:id,email和client_number。 契約也有3個:id,ip和client_id。 客戶has_many:合同。 合同belongs_to:客戶端。 有了回報率,我得到自動生成的方法,如: Client.find_by_email_and_client_number 'some_email',1234 ,但我希望有一個自動生成的方法,如:

    2熱度

    3回答

    在每次調用另一個方法時都會調用PHP中的神奇方法嗎?只有當方法不存在時,__callStatic()和__call()魔術方法似乎才起作用。

    0熱度

    1回答

    我認爲它是一個相當簡單的問題,但不知道。 我有一個類: <?PHP class PropertyTest { private $data = array(); public function __set($name, $value) { $this->data[$name] = $value; } public function __get