- blogs:
- cles::blog
« スマホアプリは儲かるのか? :: bashで多重起動を防止する(その3) »
2012/03/18

php の「 Cannot use string offset as an array 」というエラー


php で PHP Fatal error: Cannot use string offset as an array という見慣れないエラーが出たのでちょっと調査。
これは PHP4 の時にはエラーになっていなくて、PHP5 からエラーになるようになった模様。
とりあえず一番短い実証コードは下記のような感じ。
stringoffset.php
<?php
$str = "abcd";
var_dump($str);
var_dump($str[1]);
var_dump($str[1][0]);
$ php stringoffset.php
string(4) "abcd"
string(1) "b"
PHP Fatal error: Cannot use string offset as an array in /tmp/test.php on line 5
これを実行すると、5行目でエラーが発生します。「phpでcannot use string offset as an arrayエラー - Neo Inspiration」でも触れられている通り、 String に対して3次元配列でアクセスしようとすると発生するエラーのようです。ちなみに $str[1] の var_dump() の結果は string(1) なので、string(1) だけ扱いが違うのかもと思って、下記のようなプログラムを作って検証してみました。
stringoffset2.php
<?php
$str = "a";
var_dump($str);
var_dump($str[0]);
$ php stringoffset2.php
string(1) "a"
string(1) "a"
こっちは通ってしまいました。 var_dump() の結果はどちらも string(1) ですが、内部的には扱いが違うということなのでしょうね。
とりあえず1つの array に string や array や int をごっちゃに格納しなければいいということですね。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4838
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« スマホアプリは儲かるのか? :: bashで多重起動を防止する(その3) »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112045)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110676)
3 . 年次の人間ドックへ(110303)
4 . 2023 年分の確定申告完了!(1つめ)(109848)
5 . 三菱鉛筆がラミーを買収(109748)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110676)
3 . 年次の人間ドックへ(110303)
4 . 2023 年分の確定申告完了!(1つめ)(109848)
5 . 三菱鉛筆がラミーを買収(109748)
cles::blogについて
Referrers