Почему мои массивы отображаются как 0 в php? - PullRequest
0 голосов
/ 09 июня 2009

Я пытаюсь создать файл, который создает массив из 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)] + "";

?>

Ответы [ 4 ]

10 голосов
/ 09 июня 2009

. (точка) должна использоваться вместо + для объединения строк

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

вместо

Echo "" + $pk[rand(0,2)] + "";
8 голосов
/ 09 июня 2009

Цзянь Лин прав, вы используете «+», когда вы должны использовать «.» объединить строки.

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

должно стать

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

И действительно, вы можете просто сделать:

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

вместо объединения пустых строк до и после (которые, поскольку они пустые, ничего не добавляют).

5 голосов
/ 09 июня 2009

вам нужно "." объединить.

1 голос
/ 09 июня 2009

Используя оператор +, вы просите PHP «привести» все эти переменные в числовые значения и сложить их. Любая вещь, которая не является числом или строкой, которая является правильно сформированным числом, будет преобразована в 0 и добавлена ​​вместе. Остерегайтесь этой ловушки при сравнении строк: используйте тройное равенство, а не двойное, чтобы не найти, что "fish" == "0".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...