PHP运算符之逻辑运算

平常中见过那种高大上的写法,有没有摩拜的感觉?
可能不会说,不!我看不懂==,没救了,少年。。。
(ÒωÓױ)!哈哈 我来教你怎么看懂那种逻辑运算代码
来先看一个简单的逻辑

场景:

假设有一个苹果,有鸣人,柯南(动画片的人物哈哈)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,即在逻辑或运算中,第一个成立的话,则第二个以及以后的就无需再进行比较计算了;

所以,最后一个式子知道答案了,以后看到这种写法肯定知道问题所在了吧

你可能感兴趣的:(PHP运算符之逻辑运算)