2015-12-26 98 views
3

我有以下錯誤;如何將字符串值分配給php數組的索引?

注:Array對字符串的轉換在[FILE_PATH]在線路919

其涉及這行代碼,其中我試圖此字符串作爲值陣列中的分配

$contents[11] = "$hours:$minutes:$seconds\n$ca_1[remaining_time]\n$h:$m:$s"; 

爲什麼我得到這個錯誤,我該如何解決?

+0

您的問題似乎不明確。請說清楚 – Abhishek

+0

即'Note'沒有錯誤,看來。它是一個文字字符串還是需要評估該字符串中的變量?使用單引號'''作爲文字。其中一個變量是數組。最可能是'$ ca_1',像亞歷山大建議的那樣使用它''ca_1 ['remaining_time']'。 – Jigar

回答

3

以這種方式插入字符串是一種糟糕的做法,因爲它使代碼非常難以閱讀,所以您應該使用"{$h}"而不是"$h"

由於總站在評論中提到,根據不同的PHP版本,

echo "$ca_1[remaining_time]" 

不一定能給出一個

PHP注意:使用未定義的常量

喜歡echo $ca_1[remaining_time]會。但由於這不適合你,你最好引用如['remaining_time']

您可能還會在此主題上找到一些有趣的事情here

其次,用彎曲的括號明確地告訴你要插入的內容:

$contents[11] = "$hours:$minutes:$seconds\n{$ca_1['remaining_time']}\n$h:$m:$s"; 

這確實提高了可讀性。

+0

在雙引號字符串中使用關聯數組,例如:'[remaining_time]'在我使用它時不會導致錯誤。 – Terminus

+0

@Terminus是的,因爲它試圖找到一個這樣的名字的常量,當它失敗的時候,它會把它的字符串值。這也給出*注意:使用未定義的常量*。 –

+1

我應該做完整的''$ ca_1 [remaingingTime]「'這可以訪問數組元素。 Php v5.4和5.6 – Terminus

1

嘗試:

$contents[11] = $hours . ':' . $minutes . ':' . $seconds + "\n" . $ca_1['remaining_time'] . "\n " . $h . ':' . $m . ':' . $s"; 

如果這仍然失敗,請檢查您的變量。也許其中一個是數組!

+1

PHP字符串concat運算符是一個點'.',不是加號'+'。 – worldofjr

+0

謝謝修正:)這就是當你在語言之間跳轉時會發生什麼...... – chickahoona

相關問題