【问题标题】:Why are my arrays showing up as 0 in php?为什么我的数组在 php 中显示为 0?
【发布时间】:2009-06-09 02:08:41
【问题描述】:

我正在尝试创建一个创建 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)] + "";

?>

【问题讨论】:

  • 顺便说一句,你可以使用 array_rand() 代替 rand():foreach(array_rand($pk, 5) as $key) echo $pk[$key];

标签: php arrays


【解决方案1】:

。必须使用 (dot) 代替 + 来连接字符串

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

而不是

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

【讨论】:

  • 当我使用 javascript 太久时,我的 php 有时也会遇到这个问题 :)
【解决方案2】:

Jian Lin 是对的,你使用的是“+”,而应该使用“.”。组合字符串。

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

应该变成

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

真的,你可以这样做:

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

而不是在之前和之后连接空白字符串(因为它们是空白的,所以什么都不添加)。

【讨论】:

    【解决方案3】:

    你需要“。”连接。

    【讨论】:

    • 我不明白。请解释一下。
    • 宾果游戏。使用+来连接本质上是在做echo 0+0+0;
    • 您正在组合字符串以形成一个更大的字符串...在 PHP 中,它是一个点而不是“+”。如果您删除“”+和+“”部分,它也可以工作。
    • 另一种方法是使用逗号:echo "", $pk[$something], "";
    【解决方案4】:

    通过使用+ 运算符,您要求PHP 将所有这些变量“强制”为数值并将它们相加。任何不是数字或格式良好数字的字符串都将被转换为 0,并相加。比较字符串时要小心这个陷阱:使用三等号而不是双等号,以免你发现"fish" == "0"

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2019-05-01
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      相关资源
      最近更新 更多