有没有办法阻止在其构造函数中创建对象,以便:
$object = new Foo();
echo $object; // outputs: NULL
Run Code Online (Sandbox Code Playgroud)
Bol*_*ock 14
不,不可能; 该new关键字总是返回指定的,不管你尝试从构造函数返回什么类的一个实例.这是因为在调用构造函数时,PHP已经为新对象分配了内存.换句话说,该对象已经存在于该点(否则,根本没有对象可以在其上调用构造函数).
您可能会引发错误或从构造函数中抛出异常,并相应地处理它们.
class Foo {
public function __construct() {
throw new Exception('Could not finish constructing');
}
}
try {
$object = new Foo();
} catch (Exception $e) {
echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8324 次 |
| 最近记录: |