文字列は文字の配列ですが、正しいですか?もしそうなら、count()
は文字列にstrlen()
と同じ結果をもたらさないのはなぜですか?PHP - なぜcount()が文字列のstrlen()のように動作しないのですか?
答えて
文字列は、C、C++、Javaの文字の配列です。 PHPでは、そうではありません。 PHPは非常に緩やかな言語であることを覚えておいてください。あなたは[]セレクタでPHP文字列から文字を得ることができますが、まだそれを配列にしていません。
言語がそれをするとき、私はそれが嫌いです。配列の表記法を見ると、私は自動的に実際の配列で作業していると思います。 PHPマニュアルで「インデクサを持っていても配列は文字列ではありません」と明示的には言及していません。 –
文字列が配列と同じ言語はごくわずかです。おそらくC言語ではあるかもしれませんが、より高いレベルのプログラミング言語は文字列に対して特別な構造を持っています。同様に、C++では、std :: stringは配列のようにアクセスできますが、 'sizeof(std :: string)'は長さを与えません。正しい職場に適したツールを使用してください。 –
count()
は、Array
のエントリ数をカウントします。
$test = array(1,2,3);
echo count($test);
出力:3
なぜあなたはstring
strlen()
が行うことができたときにその上count()
を使いたいでしょうか?あなたの入力がstring
かarray
かわからないのですか?次に、is_array()
を使用して確認します。
はい、私は知っています。文字列が文字の配列であれば、count()はその文字列の文字数を返すべきです。 –
英語の文字列を文字列と呼びますが、PHPでは文字配列ではなく文字列です。 – Kokos
Kokosでは、PHPで文字列が通常の配列と同じように扱われない理由についての質問があります。たとえば、Haskellは文字列を文字のリストとして扱うので、Haskellのすべてのリスト関数を文字列に使うことができます。 –
count配列の要素数を取得すると、srtlenは文字列の長さを取得します。これはドキュメントである:
はい、私は知っています。私はそれがなぜそうであるか尋ねていた。 –
@ kevinmajor1もう一度読むと、これはドキュメントに記載されています。 – Raoul
私はドキュメントを読んだ。彼らは、私が望んでいたように、問題について明確ではなかった。文字列が実際に文字配列であるとすぐに思った理由について、上記の私のコメントを見てください。 –
カウントがそのカウントをstrlenを配列値の数 のためのよりpreferabalyユーザーです.....
文字列が特定のプログラミング言語によって内部的にどのように処理されているかを、必ずしも "関連する"データ型と同等に扱うことを意味するものではありません。 PHPがCではないので、同じ特徴を持っていません。
文字列は単なる一連の文字であり、count
は配列内の要素数を数えます。
$ string [$ index];を使用しています。あなたはN番目の文字を見つけるのに役立つちょっと事のそのわずかショートカット、
あなたはおそらくstrlen
が
を何ので、今日のためのレッスンが
のカウント==配列の長さ
ですcount(explode('',$string));
を使用することができます
strlen ==文字列の長さ
- 1. PHP - strlenが動作しない
- 2. strlen()はヌルターミネータの文字列countを返します。
- 3. ExpressJSで部分文字列が動作しないのはなぜですか?
- 4. PHPの文字列がintで動作しない
- 5. nullで終了しない文字列のstrlen()?
- 6. PHP if文が正しく動作しないのはなぜですか?
- 7. PHPで `session_destroy()`が動作しないのはなぜですか?
- 8. なぜ文字間隔がFx <10で動作しないのですか
- 9. PHPは文字列に内部スマート文字列を使用しないのはなぜですか?
- 10. CCLabelBMFont setStringがフォーマットされた文字列で動作しないようです
- 11. なぜこのgreasemonkeyコードはUTF8文字で動作しないのですか?
- 12. `eval`が非文字列で動作するのはなぜですか?
- 13. バイト[]文字列変換が私の望むように動作していないようです。
- 14. 私の文字列入力でeqが動作しないのはなぜですか?
- 15. PriorityQueueがキューのように動作しないのはなぜですか?
- 16. 'sizeof'を文字列に適用すると、サイズ(strlen)が返されるのはなぜですか?
- 17. C++列挙型の文字列スイッチが動作しない
- 18. Skypeのテスト文字列でCountVectorizerが動作しない
- 19. ローカライゼーション文字列ファイルがXcode 5のxibで動作しない
- 20. count()句がwhile文を壊すのはなぜですか?
- 21. `;`文字列の中でエンコーディングが動作しなくなる
- 22. .Countメソッドがこの出力に対してEMS/Powershellセッションで動作しないのはなぜですか?
- 23. なぜ、このシンプルなDjangoのIF文のように動作しますか?
- 24. 文字列の文脈で新しい日付がFirefoxで動作しない
- 25. Androidの文字列.equalsメソッドが動作しない
- 26. if文が文字列で動作しない場合
- 27. 2つ以上の文字列のstrlen?
- 28. エスケープ文字は、WordPressのPHPで動作していない?
- 29. 文字列が数字であるかどうかを調べるのがVBで動作していない
- 30. 文字列をC#で動作しない文字列に変換する
PHPはあなたが望むように常に意味があるわけではありません;-) –
@Matt Ellenそれはどんなlangでも同じです異なるタスクのために異なる機能がある理由を知りませんか? – Raoul
@Raoul:何が同じですか?異なるタイプにはそれぞれ異なる機能がありますか?確かに、しかし、いくつかの言語では、文字のリスト/配列と他のもののリスト/配列は同じように扱うことができます。 –