簡體   English   中英

具有可變屬性名稱的訪問數組屬性成員

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

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