&&和? 代替 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';
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。