PHP 是否为对象提供简写语法?

2022-08-30 11:36:23

在javascript中,您可以轻松创建对象和数组,如下所示:

var aObject = { foo:'bla', bar:2 };
var anArray = ['foo', 'bar', 2];

PHP中是否有类似的东西?
我知道你可以使用数组函数轻松创建一个数组,这几乎不会比javascript语法更多的工作,但是是否有类似的语法来创建对象?还是应该只使用关联数组?

$anArray = array('foo', 'bar', 2);
$anObjectLikeAssociativeArray = array('foo'=>'bla',
                                      'bar'=>2);

所以总结一下:
PHP是否有像对象创建这样的javascript,或者我应该只使用关联数组?


答案 1

对于简单对象,可以使用关联数组语法和强制转换来获取对象:

<?php
$obj = (object)array('foo' => 'bar');
echo $obj->foo; // yields "bar"

但是看着它,你可以很容易地看到它是多么无用(如果你的结构那么简单,你会把它作为一个关联数组)。


答案 2

有人建议实现此数组语法但它被拒绝了。


更新数组的缩短语法已经过重新讨论,被接受,现在正在与PHP 5.4一起发布

但是仍然没有对象的简写。您可能需要显式转换为对象

$obj = (object) ['foo'=>'bla', 'bar'=>2];

推荐