[英]Access array property member with variable property name
在類方法的上下文中,使用什么語法使用變量屬性名稱獲取數組成員的值?
class {
private $aFruits=array('Apple'=>'Red','Banana'=>'Yellow','Orange'=>'Orange');
public function MyFunction(){
$PropName = 'aFruits';
$KeyName = 'Banana';
// Should be able to do something like:
// Expected result: 'Yellow'
return ${$this->$PropName}[$KeyName];
}
}
這個語法:
return ${$this->$PropName}[$KeyName];
...不是很正確,因為它試圖將$this->$PropName
轉換為字符串以用作變量名。
這個語法:
return $this->$PropName[$KeyName];
...嘗試使用$PropName[$KeyName]
作為屬性名稱,這也是不正確的。
必須有某種方法可以使PHP首先評估$this->$PropName
this- $this->$PropName
,然后從resultign數組中獲得$KeyName
(不使用中間變量)?
return $this->$PropName[$KeyName];
這是正確的方法,您唯一需要做的就是描述$PropName
變量結束的位置 (即,是$PropName
還是$PropName[$KeyName]
)。 為此,請使用:
return $this->{$PropName}[$KeyName];
$ Propname不是$ this的屬性,而是MyFunction()中的局部變量,嘗試:
return $this->{$PropName}[$KeyName];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.