短路求值

1年前 阅读 261 评论 0 赞 0

defined(‘THINK_PATH’) or define(‘THINK_PATH’, DIR.’/‘);
这条语句是什么意思呢?
BY百度知道

PHP或C或很多现代语言都有这个特性,在计算逻辑或表达式的时候,计算左侧如果是true,那么就不再计算右侧,直接返回true,所以A or B;可以达到if(!A) B;的效果

同理,计算逻辑与的时候,如果左侧是false,那么同样会发生短路,不计算右侧直接返回false A and B;类似if(A) B;

短路求值在语意上比较接近英文,又回避了“if必加花括号”带来的视觉污染(?),所以还算比较通行的做法(虽然严格意义上来说不算是好习惯)

那么defined(‘THINK_PATH’) or define(‘THINK_PATH’, DIR.’/‘);
可以理解为:
if(defined(‘THINK_PATH’)){
}else{
defined(‘THINK_PATH’,DIR.’/‘);
}

你的支持将鼓励作者继续创作

评论(0)

(无)