1

サード パーティ ライブラリの PHP 拡張機能を使用してデータベース レコードを取得すると、それらの一部が配列を返し、その他の戻りオブジェクトが返されることがわかります。 array と boo はオブジェクトであり、適切な構文を使用してレコード属性にアクセスします。これは面倒です。おそらく、少し簡単にする構文シュガーがあったのではないでしょうか。

構造に関係なく、recode の属性にアクセスしたい。次の構造に同じ構文力があることを知っているからです。

$foo = ['a'=>'b','x'=>'y'];

$foo = new stdClass();
$foo->a='b';
$foo->x='y';

javascriptfoo={a:'b',x:'y'};の場合: JS でこれが可能であるx= foo['a'];場合x= foo.a;、PHP ではないのはなぜですか?

4

2 に答える 2

0

これを行う簡単な方法はありません。PHPArrayObjectクラスを使用し、すべてのオブジェクト/配列をPHP ArrayObject(http://php.net/manual/en/class.arrayobject.php)に変換するコードを記述できますが、これにより、タイプキャスティングよりも複雑になる

于 2013-01-21T18:43:58.473 に答える
0

(object)$array_name を使用して型キャスト (変数の型をオブジェクトに変更) したり、その逆 (array)$obj_name を使用したりできます

    //Array To Object Example
    $person = array (
       'firstname' => 'Richard',
       'lastname' => 'Castera'
    );
     
    $p = (object) $person;
    echo $p->firstname; // Will print 'Richard'

    //Object to Array Example
    $array = (array) $object;
于 2013-01-21T13:35:52.163 に答える