Answers:
unset($a->new_property);
这适用于数组元素,变量和对象属性。
例:
$a = new stdClass();
$a->new_property = 'foo';
var_export($a); // -> stdClass::__set_state(array('new_property' => 'foo'))
unset($a->new_property);
var_export($a); // -> stdClass::__set_state(array())
$o=(object)array('a','b','c');
(您必须将对象(返回)转换为数组,甚至只是简单地访问此类属性!)
object
而不是array
。;-)
array
为an object
?只是没有意义(即使PHP允许)。我不会对此发表评论,以掩饰和散布不良的编程习惯:)没有冒犯。
unset($o->{0});
或$k = 0; unset($o->$k);
。
如果要遍历对象,这也特别有用。
unset($object[$key])
较新版本的PHP引发致命错误,Fatal error: Cannot use object of type Object as array
如@CXJ所述。在这种情况下,您可以改用方括号
unset($object{$key})
unset($object[$key])
可以正常工作,unset($object->{$key})
但不能正常工作(更精确地说,是unset($object['literal_key'])
和unset($object->{'literal_key'})
)。PS Hm,但是,在认为我正在编辑的对象是对象而不是数组时,我可能错了