我們可以執行以下操作嗎?在PHP中訪問類中的成員PHP
class a{
public $id;
}
我們可以訪問這個領域像這樣的東西,
$x='id';
$aObj=new a();
$aObj->$x=1;//or $aObj->"id"=1
我們可以執行以下操作嗎?在PHP中訪問類中的成員PHP
class a{
public $id;
}
我們可以訪問這個領域像這樣的東西,
$x='id';
$aObj=new a();
$aObj->$x=1;//or $aObj->"id"=1
這應該是可能的:
class a {
public $id;
function getId() {
return $this->id;
}
}
$x = 'id';
$aObj = new a();
$aObj->$x = 500;
echo $aObj->id, " ", $aObj->getId();
給出:500 500
(測試用PHP 5.3)
這是PHP的_any_版本,包括PHP 4(提供的類定義是製作兼容)。 – MrWhite 2012-04-08 11:34:03
是,你可以,但不鼓勵。
使用類似$aObj->"id"=1
只是把名字放在括號
$aObj->{"id"} = 1;
如果你問這是爲什麼沮喪,很簡單:它是不可預測的,難以維護。
「不鼓勵」 - 你有參考嗎?請注意,如果屬性名稱保存在一個變量中(如OP中那樣),則需要注意花括號。 – MrWhite 2012-04-08 11:29:27
@ w3d這是不可預知的,不可維護的。 – 2012-04-08 11:32:10
你試過了嗎? '$ aObj - > {$ x}' – safarov 2012-04-08 11:07:03
[TIAS](http://www.urbandictionary.com/define.php?term=TIAS) – 2012-04-08 11:09:56
你問是否可以或者你問,因爲它沒有爲你工作?在你問這裏問題之前,你應該真的測試一下。是的,這是可能的。 – Broncha 2012-04-08 11:10:24