在示例代码中:
<?php
for ($i = 1; $i <=20; $i++) {
echo $i . '<br />';
if ($i == 10) {
$haha->hoho("hehe");
}
}
?>
当$ i = 10时,程序将显示此错误Call to a member function hoho() on a non-object
,因为$ haha不是对象,程序停止运行。我希望程序处理此错误并继续运行到$ i = 20。我该怎么办?
答案 0 :(得分:1)
答案很长:
有很多方法可以做到这一点,不管你的编程模式如何,首先要使用set_error_handler()
。
但如果你在OOP中这样做,你应该使用magic methods(what?),例如__call
和__get
- 显然$haha
需要是你的例子中的对象。
提示:在魔术方法中使用
Exception
是个好主意。但 你不能直接处理这个异常因为内部PHP 函数主要使用错误报告,只有现代面向对象 扩展使用例外。
答案 1 :(得分:0)
我会尝试类似的事情:
<?php
for ($i = 1; $i <=20; $i++) {
echo $i . '<br />';
if ($i == 10) {
if ($haha) $haha->hoho("hehe");
}
}
?>
这应该在尝试$haha
$haha->hoho("hehe");
是否存在