2013-11-27 149 views
0

在類中我有2個關聯數組。我試圖從一個數組中調用元素以用於另一種(主類)數組中。Php從一個類中的另一個數組中引用的數組元素

我想問下是否可以做,或不能,或者我做錯了什麼;

請注意,數組就是例子。

class ProductData { 

    private $texture = [0=>'Cream', 1=>'Powder', 2=>'Liquid', 3=>'Paste', 4=>'Solid']; 

    private $food = ['type'=>'Pasta', 'info'=>[1=>'750gm', 2=>'$4.50', 3=>$this->texture[4]], 
        'type'=>'Soup', 'info'=>[1=>'500ml', 2=>'$7.60', 3=>$this->texture[2]]]; 

    // Constructor, Function(s) to access the $food array... 
} 

那麼我已經找到了這個難以完成的難題。我收到一個語法錯誤;

  • 語法錯誤意外'$ this'(T_VARIABLE)。

如果我用$ texture替換$ this,則會收到相同的錯誤;

  • 語法錯誤意外'$ texture'(T_VARIABLE)。

我在想這不能做,或者我做的事情非常錯誤,或者兩者兼而有之。

如果可以這樣做,任何援助非常感謝。

感謝, NJC

回答

1
class ProductData { 

private $texture; 
private $food; 

function __construct(){ 

    $this->texture = [0=>'Cream', 1=>'Powder', 2=>'Liquid', 3=>'Paste', 4=>'Solid']; 
    $this->food = ['type'=>'Pasta', 'info'=>[1=>'750gm', 2=>'$4.50', 3=>$this->texture[4]], 
       'type'=>'Soup', 'info'=>[1=>'500ml', 2=>'$7.60', 3=>$this->texture[2]]]; 
    //other construct stuff 

} 

}

+0

最誠摯的謝謝你。我很樂意爲你的答案投票,但系統剛通知我沒有聲望點。 +1給你。 – njc

0

您只能使用恆定的值來定義屬性值之外的類方法。所以在你的情況下,你不能使用$this變量,因爲它引用了當前的對象實例。

你應該將初始化到__construct(這真的是什麼,就是要爲)

退房的documentation

這個聲明可能包括初始化,但這種初始化必須是一個常量值 - 也就是說,它必須能夠在編譯時進行評估,並且不必依賴運行時信息才能進行評估。

+0

也謝謝你。 +1 – njc

相關問題