PHP OOP在_构造中从类取消设置对象

PHP OOP在_构造中从类取消设置对象,php,class,oop,unset,construct,Php,Class,Oop,Unset,Construct,我有一些创建对象的类。在_构造函数中,我检查属性。如果它们不匹配,我想删除创建的对象 $example = new example('Value 1', 2, false); foreach (get_object_vars($this) as $propertie => $value) { if (empty($value)) { // unset(); What i have to insert in unset() ? } } 谢谢 您需要取

我有一些创建对象的类。在_构造函数中,我检查属性。如果它们不匹配,我想删除创建的对象

$example = new example('Value 1', 2, false);


foreach (get_object_vars($this) as $propertie => $value) {
    if (empty($value)) {
        // unset(); What i have to insert in unset() ?  
    }
}

谢谢

您需要取消设置创建的对象

$example = new example('Value 1', 2, false);


foreach (get_object_vars($this) as $propertie => $value) {
    if (empty($value)) {
        // unset(); What i have to insert in unset() ?  
    }
}
不要在构造函数中这样做,在创建obj的地方这样做

要集中此代码,您可以做的是构建一个。然后,您可以告诉工厂您想要一个类型为
example
且属性设置为
val1、val2、val3…
的obj

然后工厂将运行下面的代码并返回obj,如果一切正常,如果没有,您可以发出一条错误消息,解释出现了什么问题,比如属性未设置或其他。然后你可以对它做出正确的反应

$example = new example('Value 1', 2, false);

foreach (get_object_vars($example) as $propertie => $value) {
    if (empty($value)) {
        unset($exampe);
        break; //This stops the foreach
    }
}

可能的副本。这篇文章详细介绍了几种“正确”的方法,当你在
\uu construct()
函数中时,你不能“取消”对象实例化。在构造函数中引发异常或创建工厂,该工厂将为您安排所有实例化例程和依赖项Foreach在构造函数中。。。我无法从那个位置访问$example啊,好吧,我不清楚你的问题。我会更新我的答案