簡體   English   中英

PHP中對象運算符之后的組合變量

[英]composed variable after Object Operator in PHP

在PHP中創建變量時如何構建組合變量? (對不起,我不確定如何調用不同的元素)

這就是我想要做的:

$language = 'name_'.$this->session->userdata('site_lang');

for ($i=1;$i<=3;$i++) {
    $data = $arraydata->$language_.$i; // problem is here
}

我希望$language_.$i等同於name_english_1 ,下一個循環name_english_2 …與我建立$language方式相同

如果要在計算屬性中使用表達式,則必須將表達式放在花括號中。 另外,您需要在下划線加上引號。

$data = $arraydata->{$language."_".$i};

但是,我建議您重新設計數據結構。 而不是使用單獨的name_LANG_i屬性,而是創建一個其值為多維數組的單一name屬性。

$lang = $this->session->userdata('site_lang');

for ($i=1;$i<=3;$i++) {
    $data = $arraydata->name[$lang][$i];
    // do something with $data
}

每當您發現自己使用變量變量或變量屬性時,幾乎總是表明您應該使用數組。

首先構造字段名稱,然后將其用於從對象$arraydata訪問字段值。 因此,您的代碼應如下所示:

$language = 'name_'.$this->session->userdata('site_lang');
for ($i = 1; $i <= 3; $i++) {
    $var = "{$language}_{$i}";
    $data = $arraydata->$var;

    // echo $data;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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