当前位置:  开发笔记 > 编程语言 > 正文

PHP是否具有对象的简短语法?

如何解决《PHP是否具有对象的简短语法?》经验,为你挑选了4个好方法。

在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> Crescent Fre..:

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

 'bar');
echo $obj->foo; // yields "bar"

但是看着你可以很容易地看出它是多么无用(如果你的结构很简单,你就把它留作一个关联数组).


`$ goose-> foo`比`$ goose ['foo']更漂亮.∴ 有用.

2> Gumbo..:

有人建议实现这种数组语法.但它被拒绝了.


更新     数组的缩写语法已被重新讨论,接受,现在正在使用PHP 5.4发布.

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

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


这已在PHP 5.4中实现.
糟糕,它没有成功.
我想知道是否会实现对象的速记符号?我一直使用stdClasses,但与javascript对象文字相比,它们感觉很尴尬.
@Gumbo短数组语法使用`=>`而不是`:`.为你编辑答案.:)

3> Matthew..:

从PHP 5.4开始,您可以这样做:

$array = ['foo'=>'bla', 'bar'=>2];

它并不短,但如果您需要使用大量硬编码嵌套数组(这并不完全不常见),您会很感激.

如果你想要一个对象,你仍然需要转换每个数组:

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



4> Sanket Sahu..:

根据新的PHP语法,

您可以使用

$array = [1,2,3];

对于关联数组

$array = ['name'=>'Sanket','age'=>22];

对于对象,您可以将数组类型转换为对象

$object = (object)['name'=>'Sanket','age'=>22];

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有