PHP5.5とPHP5.3のexplode関数の違い?
今回、explode関数を用いて文字列を分割して、その最初のほうだけを表示させようとしたプログラムがあったのですがバージョンの違いにより動かなかったということのメモです。
下のプログラムは、PHP5.5で動かしたときです。
<?php $str = "aaaa-bbbb"; echo explode('-',$str)[0]; ?>
結果としては、
aaaa
と表示されるはずです。
しかし、バージョンがPHP5.3の際、このようにするとエラーを吐かれます。
内容としてはexplodeの後ろの[0]が悪かったみたいです。
PHP5.3で表示させたい場合は、まず変数に代入してから、その変数で配列の添え字0番目を指定すればよいみたいです。
このような感じになります。
<?php $str = "aaaa-bbbb"; $tmp = explode('-',$str); echo $tmp[0]; ?>
このような感じに変数に一旦代入してからechoで表示させてやるとPHP5.3でもエラー吐かれずに済みます。
まぁこんな感じです。