3

配列のように文字列で数値インデックスを作成できます。
元。

$text = "esenihc gnikcuf yloh";
echo $text[0];
echo $text[1];
echo $text[2];
...................
...................
...................



しかし、文字列を print_r() に入れると、配列のように同じことは起こらず、文字列で count() を行うことはできません。

私はドキュメントを読みました、そしてそれは言います。count() パラメータが配列でない場合は 1 を返す

print_r() 文字列がパラメータにある場合、その文字列を出力するだけです。

これは正確な言葉ではありませんが、このようなものです。


これらの関数の両方が文字列を配列と同じように扱わないのはなぜですか?

最後の質問は、文字列は配列ですか?

4

5 に答える 5

4

C などとは異なり、PHP には組み込みのstringデータ型があります。このstringデータ型を使用すると、文字列内の単一の文字に配列のようにアクセスできますが、常にstring. したがって、mixedデータ型を受け入れる関数にそれを渡すと、この関数は渡された引数のデータ型を決定し、そのように扱います。つまりprint_r()、配列ではなく、文字列を出力するようにプログラムされた方法で出力します。

count配列と同じように機能する関数が必要な場合は、 を参照してくださいstrlen

必要に応じて、 を介して文字列を配列に「変換」できますstr_split

于 2012-09-19T08:29:38.160 に答える
1

いいえ、文字列は配列ではありません

文字列は一連の文字であり、文字はバイトと同じであり、PHP の配列は実際には順序付けられたマップです。マップは、値をキーに関連付けるタイプです。

于 2012-09-19T08:27:10.627 に答える
1

文字列を配列として扱う場合、文字列は配列ですecho $text[0]print_r :

タイプジャグリングといいます

$a    = 'car'; // $a is a string
$a[0] = 'b';   // $a is still a string
echo $a;       // bar

文字列の長さをカウントするstrlen($string)には、for()

于 2012-09-19T08:25:44.617 に答える
0

単純に、PHPのすべての変数が配列であるという意味ですべてです。

于 2012-09-19T12:04:33.457 に答える