- ベストアンサー
illegal string offset
php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか? 例 $a = array('exists' => 'foo'); if ($a['exists']['non_existent']) { print 1; } print 2; exit;
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
isset()を使えばいいと思います
その他の回答 (2)
- agunuz
- ベストアンサー率65% (288/438)
回答No.3
if ($a['exists']['non_existent']) { $a['exists'] は存在するという前提で、php5.3と同じ動作を期待するなら if (isset($a['exists']['non_existent']) ? $a['exists']['non_existent'] : substr($a['exists'], 0, 1)) { ですかねぇ。
質問者
お礼
お礼が遅れました。ありがとうございました。
noname#244856
回答No.2
5.3の挙動があまりにも不自然だったので5.4で修正されていますね。 http://blog.sarabande.jp/post/23850080234 $a = array('exists' => 'foo'); if (isset($a['exists']['non_existent'])) { print 1; } print 2; exit;
質問者
お礼
お礼が遅れました。ありがとうございました。
お礼
お礼が遅れました。ありがとうございました。