次のコードでは、$str が配列として宣言されていません。このように記述するのは、あまりにも現実的ではないでしょうか。大丈夫です、事前に宣言しておく必要があります。問題は、なぜこれなのかです
$str="1234567890";$s='';for($i=0;$i<4;$i++){ $k=mt_rand(1, strlen($str)); $s.=$str[$k-1];}
文字列は文字列で、配列は配列です、混同しないでください
ただし文字列には配列の形式でアクセスできます。これは単なる形式であることに注意してください。$str[$k-1] は substr($str, $k-1, 1) の単なる略語です
誤解を避けるために、PHP では $str[$k-1] を次のように記述することをお勧めします。 $str{$ k-1}
については、事前に配列として宣言されておらず、配列の形式で記述されています。 あまりにも突飛すぎる記述ではありませんか
これは。強く型付けされた言語よりも自然言語に近い弱い型付け言語の特徴は 1 つ
文字列と配列は異なる型であり、文字列は配列としてアクセスできます。あなたの例では、 $str[$k-1] は substr($str, $k-1, 1) の省略形であるため、使用できます。
ただし、次の例の場合は機能しませんので、適切な型を使用することが重要です。
りー