Array→Objectにキャスト
stdClass Object
(
[0] => hoge
[1] => moge
[2] => fuga
)echo $o->0;
cucumberグループ
=>
Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$'
この場合どうやってアクセスすればいいのかな。わからずー。
たぶんアクセスできないんじゃないでしょうか。プログラミングPHP P.48にこう書いてあります。
識別子として有効でないキーは無効なプロパティ名に変換されるので、オブジェクトにキャストするとアクセスできなくなります。しかし、それを配列にキャストし直すとアクセスできるようになります。
オブジェクトのプロパティ名っていうのは、いわゆるオブジェクト内の変数名。変数名はPHPマニュアルに書かれているように、
変数名は、PHPの他のラベルと同じルールに従います。 有効な変数名は文字またはアンダースコアから始まり、任意の数の文字、 数字、アンダースコアが続きます。正規表現によれば、これは次の ように表現することができます。 '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
PHP: 変数 - Manual
というルールがあるので、上のソースをキャストすると数字から始まってしまうため、無効なプロパティ名と判断されるんじゃないかなー、と予想してます。
foreachとか使えば、直アクセスできないけど順に中身は取り出せました。
<?php foreach($o as $key => $item) { echo "key: ".$key.", value: ".$item.PHP_EOL; }