如何将字符串值分配给php数组的索引?

3
我遇到了如下错误;
注意: [file_path] 的第919行发生了数组转换为字符串的操作。
这个错误与我正试图将该字符串作为一个数组的值进行赋值有关。
$contents[11] = "$hours:$minutes:$seconds\n$ca_1[remaining_time]\n$h:$m:$s";

为什么我会出现这个错误,如何解决它?

你的问题似乎不够明确。请澄清一下。 - TheVigilant
注意,这似乎不是错误。它是一个字面字符串,或者你需要在该字符串内评估变量?对于字面值,请使用单引号'。其中一个变量是数组,很可能是$ca_1,请像亚历山大建议的那样使用$ca_1 ['remaining_time']。 - Jigar
2个回答

3

这种方式插值字符串是一种不好的做法,因为它会使代码非常难以阅读,所以您应该使用"{$h}"而不是"$h"

正如Terminus在评论中提到的那样,根据PHP版本的不同,

echo "$ca_1[remaining_time]"

并不是一定会返回

PHP 注意: 使用未定义常量

echo $ca_1[remaining_time] 这样的语句。但如果此方法无效,最好改为加引号,如 ['remaining_time']

您可能还会在这里找到一些有趣的内容。

其次,使用大括号明确指示要插入的内容:

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

这确实提高了可读性。

在双引号字符串中使用关联数组,例如[remaining_time],不会导致任何错误。 - user5051310
@Terminus 是的,因为它试图查找具有该名称的常量,当查找失败时,它会使用它的字符串值。这也会产生一个“注意:未定义常量”的警告。 - Alexander Mikhalchenko
1
我应该做完整的"$ca_1[remaingingTime]",这可以用来访问数组元素。 Php v5.4和5.6。 - user5051310
@Terminus,是我不好,"$ca_1[remaingingTime]"没有提醒。 - Alexander Mikhalchenko

1
尝试:

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

如果仍然失败,请检查您的变量。也许其中一个是数组!?

1
PHP中的字符串连接运算符是一个点“.”,而不是加号“+”。 - worldofjr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接