magic-methods

    4熱度

    1回答

    我有一個問題,一直在破壞我想要做很長一段時間的事情的方式。這與使用magic get和set in PHP並試圖對對象進行預增量有關。我有一個PHP類這樣的: class Foo { public $object; function __construct() { $this->object = array("bar" => 1); } f

    4熱度

    1回答

    我正在研究一個涉及在高級抽象級別(它是CMS應用程序)中生成表單的應用程序。我想動態創建CFormModel對象並即時設置表單域。我想我可以通過擴展CFormModel來實現,然後動態創建代表表單字段的屬性類(Yii lingo中的'attributes')。 爲了說明,而不是指定在下面的類登錄表單(在一個文件中定義): // From: http://www.yiiframework.com/d

    9熱度

    1回答

    在試圖包裝任意對象時,我遇到了字典和列表的問題。調查中,我設法想出了一段簡單的代碼,其行爲我簡直不明白。我希望一些你能告訴我是怎麼回事: >>> class Cl(object): # simple class that prints (and suppresses) each attribute lookup ... def __getattribute__(self, name): ...

    4熱度

    3回答

    我是新的Python和一般的OOP。我有一個錯誤"...instance has no attribute '__getitem__'",我明白我創建的對象不是一個列表。我怎樣才能成爲一個列表對象。下面是類文件: #!/usr/bin/python -tt import math, sys, matrix, os class Point: 'Class for points'

    0熱度

    1回答

    <?php class A { public static function foo() { // some action } public static function __callStatic($method, $args) { self::foo(); static::$method($args);

    1熱度

    1回答

    我廣泛使用魔術方法來達到很多目的,比如常用setter和getter,使用__call()實現封裝類。現在已經研究了教義,我想知道如果我們在模型中指定的話,他們還沒有使用魔術吸氣劑和吸附劑實際上他們不工作。 所以我的問題是如何教條有縮寫魔術方法?以及像在docterine中使用魔術方法的缺點是什麼?

    1熱度

    1回答

    我對PHP的面向對象系統和小怪癖有點新鮮。從我讀過的__get和__set方法在訪問不可訪問的字段時被調用。所以,顯然訪問類中的公共字段或受保護的字段將不會調用這些函數。但是如果我嘗試訪問$ obj-> a並且以前從未定義過一個呢?我原本以爲這會調用__get或__set,但它似乎沒有。我知道解決這個問題的方法是將所有動態創建的字段放入數據數組中。 是$ obj->因此是一個公共領域?非常感謝你!

    0熱度

    2回答

    我有一個類應該充當差異列表(增量),從另一個列表計算。例如,如果我有職位列表,我可以使用我的班級創建一個動態創建的位移列表。 對於這一點,我已經使用了__getitem__方法方式如下: class Deltas(object): def __init__(self, ref): self.ref = ref def __getitem__(self, index

    0熱度

    2回答

    如果我理解正確,使用__set(),您可以即時創建類變量,這將是公開的,並且可以訪問私有/受保護的屬性。 好像使用: __set($name,$value) { $this->data[$name] = $value; } OR: __set($name,$value) { $this->$name = $value; } ...都將導致進出各種垃圾。 對於每個受保

    1熱度

    1回答

    相當確定這不是重複的...在這裏它就是這樣。 我的目標是在調試類中重載多個魔術方法,並讓我的主類擴展所述類。我的想法是,這將允許我通過應用程序堆棧進行調試步驟,而不必在每個類中逐個重載魔術方法。 到目前爲止的代碼看起來是這樣的 class magicdbg { //data container object private $data; public function __constru