重複の可能性:
数値キーをオブジェクトとして持つ配列をキャストする
(object)
型キャストについて考えていました。
連想配列をオブジェクトに変換するなど、多くの便利なことを行うことができます。また、スカラー値をオブジェクトに変換するなど、あまり役に立たず、少し面白い(IMHO)こともできます。
しかし、インデックス付き配列のキャストの結果にアクセスするにはどうすればよいですか?
// Converting to object an indexed array
$obj = (object) array( 'apple', 'fruit' );
特定の値にアクセスするのはどうですか?
print $obj[0]; // Fatal error & doesn't have and any sense
print $obj->scalar[0]; // Any sense
print $obj->0; // Syntax error
print $obj->${'0'}; // Fatal error: empty property.
print_r( get_object_vars( $obj ) ); // Returns Array()
print_r( $obj ); /* Returns
stdClass Object
(
[0] => apple
[1] => fruit
)
*/
stdClass
が動的に実装されCountable
、次のように機能するため、次のように機能しArrayAccess
ます。
foreach( $obj as $k => $v ) {
print $k . ' => ' . $v . PHP_EOL;
}