正直なところ、なぜこれをやりたいのかわかりませんが(連想配列は本質的に data-only-objects です)、主張する場合:
すべての配列をすべての単一レベルでオブジェクトにキャストする代わりに、使用できます次の「トリック/ハック」 :
$object = json_decode(
json_encode(
array('some'=>array('multi'=>'Dimensional'),
'array'=>'that',
'you' => array('want' => 'to',
'turn' => 'into'),
'an' => 'object')));
これにより、すべての配列が のインスタンスに変換されますstdClass
。これは、あなたが望んでいたものだと思います。
繰り返しますが、PHP はJavaScript ではなく、オブジェクトは PHP のような言語では (相対的に言えば) はるかに高価ですが、JS の場合はそうです。オブジェクトが必要ない場合は、連想配列の使用に固執することを強くお勧めします。
オブジェクトと同様に、配列はタイプヒントにすることができます:function foo (array $argument){}
本当にそれらを何らかのクラスの特定のインスタンスに変換したい場合は、配列を処理するためにコンストラクターを変更しないでください:
class My_Object extends stdClass
{
public function __construct(array $params = null)
{
if (!empty($params))
{
foreach ($params as $name => $value)
{
$this->{$name} = $value;//set everything
}
}
}
}
そして、ロットに追加したいメソッドを追加していきます