magic-methods

    2熱度

    2回答

    我通過利用__get魔術方法來定義在訪問不存在的屬性時會發生什麼情況。 因此,如果$property->bla不存在,我會得到null。 return (isset($this->$name)) ? $this->$name : null; 但我想拋出,趕上錯誤$property->bla->bla當我知道$property->bla不存在。 與return (isset($this->$na

    1熱度

    1回答

    可能重複: Checking a Dictionary using a dot notation string 有一個多層次字典是這樣的: some_infomations = { "root":{ "sub":{ "more_deep":{ "not_enough": "Some value", "another": "bla.

    1熱度

    2回答

    在我的許多網站上,我使用了一個名爲「Logger」的自制PHP類(基本上,它旨在將信息記錄到日誌文件中,並按日期:年/月...自動組織這些文件)。 我使用它在我的引導文件創建記錄器的實例(包括無處不在): require 'lib/Logger.class.php'; $mainLogger = new Logger('./my_log_folder'); 這迫使我設置$mainLogger

    1熱度

    2回答

    <?php class Magic_Methods { protected $meta; public function __construct() { $this->meta = (object) array( 'test' => 1 ); } public function __isset($nam

    1熱度

    1回答

    現在我有一個BaseObject對數據庫執行ORM。我依靠私有$ data和magic setter和getter來創建對象作爲私有對象成員(動態地)。在子類中,如果我想更改行爲來設置單個對象成員,則必須覆蓋父設置器並查找關鍵字。我的問題是,如果有更好的方法來做到這一點,我可以只覆蓋單個對象的成員通過__setter寧願去 基本對象映射它映射到數據庫和動態創建一堆私人則params的 class

    -3熱度

    1回答

    在__construct中設置屬性時調用了神奇方法__set嗎? class MyClass { public function __construct() { $this->property = 'something'; } public function __set($name,$value) { $this->{$n

    3熱度

    2回答

    [編輯]更新標題更準確地反映問題 我試圖解決的問題是這樣的:我需要知道如果通過parent::調用某個方法,而我可以使用debug_backtrace,則似乎必須有更好的方法來執行此操作。 我一直在尋找遲到的靜態綁定,但也許我不明白它足以揣測一個解決方案。 有問題的方法是__call所以我不能簡單地傳入一個額外的參數,因爲它的錯誤大概是兩個或更多。 試圖解決這個問題的原因是,父類有__call,但

    0熱度

    1回答

    這裏是我的PHP類($ CLASS_NAME)不使用__set()方法: class Category { private $cat_id; private $cat_name; private $cat_is_main; private $cat_parent; function __get($key) { switch ($key

    17熱度

    1回答

    我知道魔術IPython %paste命令,如果您有有效的代碼插入,這是非常有用的。現在我不想插入代碼,我只想從複製緩衝區中存儲一些字符串作爲變量。有沒有更簡單的方法來做到這一點,除了將字符串複製到單獨的文本編輯器並先修改它? 像這樣的事情將是很好,但沒有人正在努力: strvar = %paste strvar = """%paste""" 附:該字符串很冗長,幷包含特殊的字符等,所以簡單

    8熱度

    2回答

    除了爲了正確性而繞過任何實例屬性之外,隱式特殊方法查找通常也會繞過對象的元類的方法__getattribute__()。 The docs提到的特殊方法,如__hash__,__repr__和__len__,而我的經驗還包括__iter__爲Python 2.7知道。 引述an answer to a related question: 「魔術__methods__()被特殊處理:它們在內部分配給