$someClass sc=new SomeClass();
我想知道的是,如果构造函数由于某种原因(例如可能没有足够的内存)而失败,那么变量sc中会出现什么。我找不到答案?
答案 0 :(得分:3)
以你的内存问题为例,你得到一个致命错误,php停止执行。你永远不会分配变量$ sc。
答案 1 :(得分:2)
构造函数可能会失败主要有两个原因:
内存不足;对象不是唯一的,这会导致致命错误,并且您的脚本将无法继续。
抛出exception;除非使用'try-catch'子句捕获异常,否则您的脚本将停止。
try { $sc = new SomeClass(); // exception is thrown inside the constructor } catch (Exception $e) { echo "Yikes, object didn't get created; error = {$e->getMessage()}\n"; }
答案 2 :(得分:0)
首先,对象启动的语法不正确,需要$sc = new SomeClass();
并且你会得到内存耗尽错误,并且不会创建变量$sc
。
答案 3 :(得分:0)
当任何其他类型的代码由于某些原因(例如内存不足等)而失败时会发生同样的事情:PHP运行时发出致命错误,就是这样。对象构造函数并不特殊。