function myfunc ()
{
$a['foo'] = 'bar';
$a['baz'] = 'qux';
return $a;
}
$a = myfunc();
電話をかけたときに使用できecho $a->foo;
、出力されるようにするにはどうすればよいですbar
か?
追加の質問:上記の単純な関数がある場合、配列またはオブジェクトを返す方がよいでしょうか?
function myfunc ()
{
$a['foo'] = 'bar';
$a['baz'] = 'qux';
return $a;
}
$a = myfunc();
電話をかけたときに使用できecho $a->foo;
、出力されるようにするにはどうすればよいですbar
か?
追加の質問:上記の単純な関数がある場合、配列またはオブジェクトを返す方がよいでしょうか?
オブジェクトとしてキャストするだけです。
function myfunc ()
{
$a['foo'] = 'bar';
$a['baz'] = 'qux';
return (object)$a;
}
どちらが欲しいかはあなた次第です。返されたオブジェクトまたは配列で何をしているかによって異なります。
1-私はこのようにします:
function myfunc ()
{
$a['foo'] = 'bar';
$a['baz'] = 'qux';
$array = new ArrayObject($a);
return $array;
}
ArrayObjectは php バージョン 5 からサポートされています
2-配列またはオブジェクトを返すかどうかは実際には問題ではありません。それはあなたの決定です
配列を返す場合は、メンバーに としてアクセスする必要があります$a['foo']
。は->
確かに oop 演算子です。これを使用するには、配列の代わりにオブジェクトを作成する必要がありますが、それは最初にクラスを定義する必要があることを意味します。これは、このようなオブジェクトのすべてのインスタンス化に対して2 つのメンバーfoo
とbaz
が存在する必要があることを意味します。ですから、それはまったく別のことです。