让我们假装我们有一个if语句,如:
if(something_true) {
$obj = get(my_obj);
if($obj !== null) do(something_special);
else do(the_default); # First else
}
else do(the_default); # Second else
是否可以在第一个其他地方退出if,而继续使用第二个?
我的想法是,我不必两次编写完全相同的代码。
答案 0 :(得分:0)
if(something_true && get(my_obj) !== null) {
do(something_special);
}
else do(the_default); # Second else
答案 1 :(得分:0)
那是不可能的。只有当初始条件为假时才会执行第二个其他操作,这只是简单的逻辑。只需在第一个语句中检查something_true和!== null,并假设两个esle中的“the_default”与ashkufaraz建议在第二个语句中做同样的事情。
答案 2 :(得分:0)
解决方案deceze评论作品。 如果您以后甚至需要my_obj,您可以使用以下内容:
if(something_true) && (!is_null($obj = get(my_obj);)) {
do_something_special($obj);
}
else do(the_default); # Second else
从技术上讲,ashkufaraz的建议也解决了这个问题,但我不推荐它,因为它每次调用get(my_obj)。