[英]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.