- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:strlen関数について)
strlen関数で文字列の長さを取得する方法
このQ&Aのポイント
- strlen関数を使用して文字列の長さを取得する方法について困っています。
- プログラムの実行結果を見ると、$sumkey1変数が文字列ではなく数値として扱われているように見えます。
- どうすれば正しい文字数を取得することができるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
<?php //おちつかないので配列使わせてください。 $sumkey = array(); $a= "abcde12345678912345678912345678912"; for($h=0; $h<6; $h++){ //都合上ここ変更 $sumkey[$h] = 0; for($i=0; $i<8; $i++){ //phpは //http://d.hatena.ne.jp/gallu/20061108/p1 //とかいう変態的な挙動をするので途中足される4文字は数値として解釈できないから //算術演算子+の引数の時に時に無視されて //普通に計算されているように見えるのです。 //計算結果66(2文字)の最後に文字列リテラルで"<br>"の4文字を足してたら6文字になるよな。 $sumkey[$h]= $sumkey[$h] + hexdec(substr($a ,8 * $h + $i ,1)) ; } } //まぁ別にsprintfしなくてもいいんですけどね。 echo sprintf("%d",$sumkey[0]) . "\n"; echo sprintf("%d",strlen(sprintf("%d",$sumkey[0]))); ?>
お礼
読みづらくて、すいません。m(__)m まだ始めたばかりで、構文側がわからなかったのでとりあえずで作っていました。 理解できました。 ありがとうございました。 見えるもの全てではないんですね。 勉強になりました。ありがとうございました。