为什么我的数组在php中显示为0?
我试图创建一个文件,创建一个由3个字符串组成的数组,然后随机显示3个字符串中的一个5次。有人能告诉我我做错了什么吗为什么我的数组在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)] + ""; ?> 您需要“.”来连接。。
<?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]代码>