2009-06-09 9 views
0

3つの文字列の配列を作成するファイルを作成しようとしていますが、3つの5つのうちの1つがランダムに表示されます。誰かが私が間違っていることを教えてもらえますか?なぜ私の配列はPHPで0として表示されますか?

<?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)] + ""; 

?> 
+1

代わりに、array_rand()を使うことができます: 'foreach(array_rand($ pk、5)$ key)echo $ pk [$ key];' – rojoca

答えて

10

。 (ドット)をご使用されなければならないとき、あなたは「+」を使用している文字列の代わりに

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

私はあまりにも長い間、私のPHPのためのjavascriptにしてきた場合には、時々あまりにもこの問題を取得します:) –

5

"。"が必要です。連結する。

+0

わかりません。説明してください。 – William

+0

ビンゴ。 +を使用すると、本質的に 'echo 0 + 0 + 0;'が実行されます。 – ceejayoz

+0

あなたはより大きなものを形成するために文字列を結合しています... PHPでは、 "+"ではなくドットです。 + "+" + ""部分を削除すると、動作します。 –

8

建林の

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

正しいかを連結する代わりに+を使用しなければなりません「」文字列を結合する。

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

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

になるべきで、本当に、あなただけ行うことができます。

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

の代わりに、彼らは空白だとして、その(前後に空白文字列を連結、何も加えません)。 +演算子を使用することにより

1

、あなたは数値にすべてのこれらの変数を「強制」し、それらを追加するPHPを求めています。数字でないものや整形式の数字であるものは0に変換され、一緒に追加されます。文字列を比較するときはこの落とし穴に注意してください:double-equalsではなくtriple-equalsを使用してください。"fish" == "0"が見つからないようにしてください。

関連する問題