簡體   English   中英

如何存儲構造的變量名

[英]how to store constructed variable name

我希望獲得以下變量名稱:

class ClassA
{
    public $my_name_is = "";
    function __construct($tag,$cont = null)
    {
        $this->my_name_is = ???;
    }
}
$OBJ = new ClassA();
echo($OBJ->my_name_is);

這應該輸出

OBJ

可能嗎?

我制作了標簽HTML生成器,並且標簽的ID應該是對象名稱,因此我不能寫兩次:

$input_pwd = new tag("td>input TYPE=PASSWORD.box_lg#input_pwd"); //old way
$input_pwd = new tag("td>input TYPE=PASSWORD.box_lg"); //upgraded way

應該產生:

<td><input TYPE=PASSWORD ID='input_pwd' CLASS='box_lg'></td>

不,這不對。 對象不知道引用該對象的變量的名稱。

“需要”通常是設計缺陷。

您可以使用魔術常量__CLASS__來檢索當前類的名稱,但是類無法獲取存儲該類的變量的名稱。 您可能想擴展您的課程,但仍使用__CLASS__

class OBJ extends ClassA {
    public function getName() {
        return __CLASS__;
    }
}
$OBJ = new OBJ();
$OBJ->getName();

另請參閱: http : //php.net/manual/zh/language.constants.predefined.php

如果只想確保對對象的每個引用都具有唯一的ID,則可以使用靜態變量來實現。

class ClassA {
    public function getUniqueName() {
        static $count = 0;
        ++$count;
        return __CLASS__ . '.' . $count;
    }
}
$OBJ = new ClassA();
echo($OBJ->getUniqueName();

每次調用該方法時,都會得到不同的結果。 如果在每個變量上僅調用一次,則應該沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM