【发布时间】:2021-11-06 23:29:57
【问题描述】:
如果属性有类型,如何删除属性。
unset()在属性没有类型时工作。
class A
{
public string $a;
public $b;
}
$o = new A();
unset($o->a);
unset($o->b);
// object(A)#1 (0) {
// ["a"]=>
// uninitialized(string)
// }
【问题讨论】:
-
您实际上想要达到的效果是什么(我假设您实际上不在乎 var_dump 输出什么)?删除已声明的属性是一件有些不寻常的事情,但“初始化”状态已被定义,因此涉及它的某些技巧仍然有效。
-
@0stone0,至少据我所知,它并没有专门解决类型化的属性
-
该属性未使用
var_export、serialize或json_encode导出(显示的输出为var_dump)。我没有看到这种行为的问题(它是一个声明的类属性)。这可能是不需要的还有其他原因吗?