有没有一种方法可以防止在其构造函数中创建对象,以便:
$object = new Foo();
echo $object; // outputs: NULL
最佳答案
不,不可能; new
关键字总是 返回指定类的实例,无论您试图从构造函数返回什么。这是因为在调用构造函数时,PHP 已经完成为新对象分配内存。换句话说,该对象在此时已经存在(否则,根本没有可调用构造函数的对象)。
您可以改为从构造函数引发错误或抛出异常,并相应地进行处理。
class Foo {
public function __construct() {
throw new Exception('Could not finish constructing');
}
}
try {
$object = new Foo();
} catch (Exception $e) {
echo $e->getMessage();
}
关于php - 破坏构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4803866/