PHP新语法
持续更新php > 7
新出语法
?:
简化三元运算符
echo $x ? $x : $y;
echo $x ?: $y;
??
判断一个变量是a否存在,存在则赋值变量a,不存在赋值变量b
注意是判断一个变量是否存在,而不是判断一个变量是否为空
isset三元运算符
$a = $a ?? 1;
var_dump($a); // 1
$a = 5;
$a = $a ?? 1;
var_dump($a); // 5
$a = 0;
$a = $a ?? 1;
var_dump($a); // 0
??=
等同于
$a ??= 'dd';
$a = $a ?? 'dd';
match
比swtich简洁
$a = match ($device) {
'android' => 1,
'ios' => 2,
'touch' => 3,
'pc' => 4,
default => 0,
};
参数无序
class Person {
public static function test($name, $age) {
echo $name.'|'.$age;
}
}
Person::test(age:100, name:'Landy');
// -----------
function test($name, $age='18', $sex='男') {
echo $name . '-------' . $age . '--------'. $sex;
}
test('Landy', age: 20, sex: '女'); //Landy-------20--------女
test('Landy', sex: '女'); //Landy-------18--------女
构造方法定义属性
class Point {
public function __construct(
public float $x = 1.0,
public float $y = 2.0,
public float $z = 3.0,
) {}
}
echo (new Point())->x; // 1
fn 箭头函数
fn(arguments) => expression to be returned;
// This only works in PHP 7.4 and above
$str = "Hello World";
$my_function = fn($a) => $str . $a;
echo $my_function("!");
扫描二维码,分享此文章