为什么我的数组在php中显示为0?

为什么我的数组在php中显示为0?,php,arrays,Php,Arrays,我试图创建一个文件,创建一个由3个字符串组成的数组,然后随机显示3个字符串中的一个5次。有人能告诉我我做错了什么吗 <?php $pk[0] = "PK Fire!<br/>"; $pk[1] = "PK Thunder!<br/>"; $pk[2] = "PK Freeze!<br/>"; for($i = 0; $i < 5; $i++) Echo "" + $pk[rand(0,2)] + ""; ?> 您需要“.”来连接。。

我试图创建一个文件,创建一个由3个字符串组成的数组,然后随机显示3个字符串中的一个5次。有人能告诉我我做错了什么吗

<?php

$pk[0] = "PK Fire!<br/>";
$pk[1] = "PK Thunder!<br/>";
$pk[2] = "PK Freeze!<br/>";

for($i = 0; $i < 5; $i++)
Echo "" + $pk[rand(0,2)] + "";

?>

您需要“.”来连接。

。必须使用(点)而不是+来连接字符串

Echo "" . $pk[rand(0,2)] . "";
而不是

Echo "" + $pk[rand(0,2)] + "";

Jian Lin是正确的,当您应该使用“.”组合字符串时,您正在使用“+”

Echo "" + $pk[rand(0,2)] + "";
应该成为

echo "" . $pk[rand(0,2)] . "";
实际上,你可以这样做:

echo $pk[rand(0,2)];

通过使用
+
操作符,您要求PHP将所有这些变量“强制”为数值并相加,而不是将前后的空白字符串连接起来(因为它们是空白的,所以不添加任何内容)。

。任何不是数字的东西或不是格式正确的数字的字符串都将转换为0,并相加。在比较字符串时要注意这个陷阱:使用三重等于而不是双等于,以免您发现
“fish”==“0”

我不明白。请解释一下,宾果。使用+连接基本上是执行
echo 0+0+0。您正在组合字符串以形成更大的字符串。。。在PHP中,它是一个点而不是“+”。如果删除“+和+”部分,它也会起作用。另一种方法是使用逗号:echo“$pk[$something],”;当我在javascript中使用太久时,我的php有时也会遇到这个问题:)作为旁白而不是rand(),你可以使用array_rand():
foreach(array_rand($pk,5)作为$key)echo$pk[$key]