• ベストアンサー

文字列'012345'の3番目の文字

を表示するのに <?php $str='01234567'; echo $str{3}; ?> <?php $str='01234567'; echo $str[3]; ?> というふうにしますが $str{3}を使うほうが望ましいのか $str[3]を使うほうが望ましいのか 教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

参考URL 文字列への文字単位のアクセスと修正 によると、 ”過去の互換性のため、配列括弧を使用することが可能です” とあります。 そういう意味で言うと、PHP5を使う場合には、{ }を使う方が望ましいと言えると思います。 PHP4で(も)動かすことが予想される場合には、逆に[ ]を使う方が望ましいのかも知れません のぞましいという意味で言うと、substr(mb_substr)を使うのが望ましいのかもしれません

参考URL:
http://www.php.net/manual/ja/language.types.string.php
guuman
質問者

お礼

ありがとうございます これからは{}のほうがよいということですね

その他の回答 (2)

  • awazak
  • ベストアンサー率36% (61/165)
回答No.2

ホントだ、表示されますね。失礼しました。 補足で $str= array(0,1,2,3,4,5,6,7); このような時は $str[3]を使うほうが正しいです。

guuman
質問者

お礼

ありがとうございます 配列の場合は[]にするしかないのでいいのですが 文字列の場合は古いバージョンとのコンパチのため []も認められているようですが やはり{}を使うのが筋ということですね

  • awazak
  • ベストアンサー率36% (61/165)
回答No.1

上記です。 <? $str='01234567'; echo $str{2}; ?> ちなみに echo $str{3}; ではなく      echo $str{2}; です。 0番目と言う概念があるため。 下記の echo $str[3]; は配列の場合。 望ましいと言うか、表示されないはずですが、試しましたか? 配列は参考URLを見てみてください。

参考URL:
http://jp.php.net/manual/ja/language.types.array.php
guuman
質問者

お礼

ありがとうございます []でも{}でも同じように表示されることは確認しています {}が望ましいということですね

関連するQ&A