&&和? 代替 if 或 switch 来做流程判断

一. 代替 if

1.初始化一个$name并且赋值

if(!isset($name)){
   $name = 'hisheng';
}
## 这个输出的话 $name = 'hisheng'
## 代替写法如下
!isset($name) && $name = 'hisheng'
&& 是计算机cpu的逻辑运算府,如果都true才true
0 && $v = 'a'; //cpu执行0的时&&是false,则不往下走, $v 为null
1 && $v = 'b'; //cpu执行1的时&&是true,往下走, 赋值$v为b
0 || $v = 'c'; //cpu执行0的时||是false,往下走,赋值$v为c
1 || $v = 'd'; //cpu执行1的时||是true,则不往下走, $v 为null

2.当有值的时候,不变化,没有值的时候赋值

$name = 'zhang';
if(!isset($name)){
   $name = 'hisheng';
}
## 这个输出的话 $name = 'zhang'

3.当空值的时候,赋值

$name = '';
if(empty($name)){
   $name = 'hisheng';
}
## 这个输出的话 $name = 'hisheng'
## 代替写法如下
empty($name) ? 'hisheng' : ''

4.多个if

$params = [
    'name' => 'hisheng',
    'age'=>30,
    'address'=>'上海 浦东'
]
$user = new User();

##原写法
if(!empty($params['name'])){
    $user->name = $params['name'];
}
if(!empty($params['age'])){
    $user->age = $params['age'];
}
if(!empty($params['address'])){
    $user->address = $params['address'];
}
$user->save();
##代替写法
!empty($params['name']) && $user->name = $params['name'];
!empty($params['age']) && $user->age = $params['age'];
!empty($params['address']) && $user->address = $params['address'];
$user->save();

二. 代替 switch

$deviceInt 为1 代表android 2 代表ios

switch($deviceInt){
    case 1:
        $deviceSystem = 'android';
        break;
    case 2:  
        $deviceSystem = 'ios';
        break;
}
## 代替写法如下
$deviceInt == 1 && $deviceSystem = 'android';
$deviceInt == 2 && $deviceSystem = 'ios';
谢谢您的观看,欢迎关注我的公众号。

image.png


海生
104 声望34 粉丝

与黑夜里,追求那一抹萤火。