平常中见过那种高大上的写法,有没有摩拜的感觉?
可能不会说,不!我看不懂==,没救了,少年。。。
(ÒωÓױ)!哈哈 我来教你怎么看懂那种逻辑运算代码
来先看一个简单的逻辑
场景:
假设有一个苹果,有鸣人,柯南(动画片的人物哈哈)2个人
问题
如果鸣人有苹果,那么柯南得到一个橘子,否则可能得到一个香蕉
简单吧。
解决:人物为变量,采用拼音
方法一 if大法
if($mingren.hasApple()){
$kenan =getOrange();
}else{
$kenan =getBanana();
}
注:简单吧,但是low不low啊 ,都21世纪了,玩点高大上的
方法二: 三木运算
$kenan = $mingren.hasApple() ? getOrange() : getBanana() ;
注:是不是好多了哈
不过都不是我要说的,来看高大上的吧
方法三 高大上
$kenan= getOrange() :
$mingren.hasApple() || $kenan = getBanana() ; //*重点
猜对了,这么牵强的说这么多,我要说的就是那个重点,
是不是在某个项目中看过类似的代码,对于很多人而言,乍一看,返回值Boolean值,干嘛用的,No!返回值是Boolean没错,但是玄机很大。
简单写个荔枝吧(php代码)
$a = 6;
$b = 5;
if ($a = 3 || $b = 8) {
var_dump($b);
var_dump($a);
}
猜猜答案:
答案:$a = true $b = 5
分析:if中优先级:$a = (3 || $b = 8)
3先与后面的逻辑或运算比较,所以赋给$a的值是true,而不是3;
输出$b的值是依然是5,即在逻辑或运算中,第一个成立的话,则第二个以及以后的就无需再进行比较计算了;
所以,最后一个式子知道答案了,以后看到这种写法肯定知道问题所在了吧
网友评论