1

当您使用 3rd 方库的 PHP 扩展获得一些数据库记录时,您知道其中一些返回一个数组和一些其他返回对象,在 Web 开发期间,我必须将此类对象转换为数组,反之亦然,或者至少记住 foo 是array 和 boo 是对象并使用正确的语法来访问记录属性。这很烦人,我想也许有一个语法糖让它更容易,不是吗?

无论结构如何,我都想访问重新编码的属性。因为我们知道以下结构具有相同的句法能力。

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

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

在 javscript 中:foo={a:'b',x:'y'};然后x= foo['a'];或者x= foo.a;如果这在 JS 中是可能的,为什么不在 PHP 中?

4

2 回答 2

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 回答
0

没有简单的方法可以做到这一点我可以为您编写一个使用 PHP ArrayObject 类并将每个对象/数组转换为 PHP ArrayObject (http://php.net/manual/en/class.arrayobject.php) 的代码,但这将比类型转换更复杂

于 2013-01-21T18:43:58.473 回答