对于一个新数组,我这样做:
$aVal = array();
$aVal[key1][var1] = "something";
$aVal[key1][var2] = "something else";
对象是否有类似的语法
(object)$oVal = "";
$oVal->key1->var1 = "something";
$oVal->key1->var2 = "something else";
对于一个新数组,我这样做:
$aVal = array();
$aVal[key1][var1] = "something";
$aVal[key1][var2] = "something else";
对象是否有类似的语法
(object)$oVal = "";
$oVal->key1->var1 = "something";
$oVal->key1->var2 = "something else";
当前回答
我想指出的是,在PHP中,没有像空对象这样的东西:
$obj = new stdClass();
var_dump(empty($obj)); // bool(false)
当然$obj是空的。
另一方面,空数组在两种情况下都是空的
$arr = array();
var_dump(empty($arr));
引用changelog函数为空
没有属性的对象不再被认为是空的。
其他回答
Php.net说它是最好的:
$new_empty_object = new stdClass();
除了僵尸的答案,如果你一直忘记stdClass
function object(){
return new stdClass();
}
现在你可以做:
$str='';
$array=array();
$object=object();
你有这个不好但有用的技术:
$var = json_decode(json_encode([]), FALSE);
你也可以试试这种方法。
<?php
$obj = json_decode("{}");
var_dump($obj);
?>
输出:
object(stdClass)#1 (0) { }
$x = new stdClass();
手册中的一条评论总结得最好:
stdClass是默认的PHP对象。 stdClass没有属性,方法或 的父母。它不支持魔法 方法,并且没有实现接口。 将标量或数组强制转换为 对象的实例 stdClass。你可以使用stdClass 当你需要一个通用对象时 实例。