在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或我应该只使用关联数组?
对于简单对象,您可以使用关联数组语法和强制转换来获取对象:
'bar'); echo $obj->foo; // yields "bar"
但是看着你可以很容易地看出它是多么无用(如果你的结构很简单,你就把它留作一个关联数组).
有人建议实现这种数组语法.但它被拒绝了.
更新 数组的缩写语法已被重新讨论,接受,现在正在使用PHP 5.4发布.
但仍然没有对象的简写.您可能需要显式转换为对象:
$obj = (object) ['foo'=>'bla', 'bar'=>2];
从PHP 5.4开始,您可以这样做:
$array = ['foo'=>'bla', 'bar'=>2];
它并不短,但如果您需要使用大量硬编码嵌套数组(这并不完全不常见),您会很感激.
如果你想要一个对象,你仍然需要转换每个数组:
$object = (object) ['foo'=>'bla', 'bar'=>2];
根据新的PHP语法,
您可以使用
$array = [1,2,3];
对于关联数组
$array = ['name'=>'Sanket','age'=>22];
对于对象,您可以将数组类型转换为对象
$object = (object)['name'=>'Sanket','age'=>22];