php中使用短路运算提高代码质量
这篇文章主要记录php中使用短路运算( Short Circuit Evaluation). 我们也可以在其他编程语言中使用它。
考虑以下代码:
<?php function a(){ echo 'a'; return true; } function b(){ echo 'b'; return false; } if(b() && a()){ echo 'c'; } ?>
当你运行上面的代码,输出的结果是'b'.原因是,当运行if语句时,if语句中的表达式会从左至右执行。如果第一个表达式的值为false,那么第二个表达式就不会执行。
接着看下OR运算短路
<?php function a(){ echo 'a'; return false; } function b(){ echo 'b'; return true; } if(b() || a()){ echo 'c'; } ?>
这一次输出结果为'bc'。原因是if语句中的第一个表达式b( )的返回值是true,所以第二个表达式不会再执行。
使用短路运算会提高应用程序的运行效率。思考下面的代码:
<?php $url = htmlentities($_POST['url']); if($url == '' || validate::url($url)){ echo 'URL is not valid.'; }else{ echo 'Valid URL provided'; } ?>
在上面的例子中,如果url是空字符串,if语句中第一个表达式$url==''结果就为真,所以if语句中的第二个表达式就不会执行了。这样能够节约时间,提高效率,何乐不为?