TMS*_*TMS 56 php object literals object-literal
在PHP中,我可以很容易地指定数组文字:
array(
array("name" => "John", "hobby" => "hiking"),
array("name" => "Jane", "hobby" => "dancing"),
...
)
Run Code Online (Sandbox Code Playgroud)
但是如果我想要一些对象呢?如何在PHP中指定对象文字?即在JavaScript中它将是:
[
{name: "John", hobby: "hiking"},
{name: "Jane", hobby: "dancing"}
]
Run Code Online (Sandbox Code Playgroud)
Tim*_*Tim 85
正如BoltClock所提到的,PHP中没有对象文字但是你可以通过简单地将数组类型转换为对象来实现:
$testArray = array(
(object)array("name" => "John", "hobby" => "hiking"),
(object)array("name" => "Jane", "hobby" => "dancing")
);
echo "Person 1 Name: ".$testArray[0]->name;
echo "Person 2 Hobby: ".$testArray[1]->hobby;
Run Code Online (Sandbox Code Playgroud)
小智 64
从PHP 5.4开始,您还可以使用短数组语法:
$json = [
(object) ['name' => 'John', 'hobby' => 'hiking'],
(object) ['name' => 'Jane', 'hobby' => 'dancing'],
];
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,PHP中没有对象字面值,但你可以通过将数组转换为对象来"伪造"它.
使用PHP 5.4,这更加简洁,因为数组可以用方括号声明.例如:
$obj = (object)[
"foo" => "bar",
"bar" => "foo",
];
Run Code Online (Sandbox Code Playgroud)
这将为您提供具有"foo"和"bar"属性的对象.但是,我认为这并不比使用关联数组提供更多优势.这只是一种语法差异.
考虑使用您使用的所有语言的独特性和"风味".在JavaScript中,对象文字遍布各处.在PHP中,关联数组在功能上与JavaScript对象文字相同,易于创建,并且被其他PHP程序员很好地理解.我认为你最好不要接受这种"味道"而不是试图让它感觉像JavaScript的对象文字语法.
| 归档时间: |
|
| 查看次数: |
26495 次 |
| 最近记录: |