Siam博客

php新语法

2022-11-07

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("!");
本文链接:
版权声明: 本文由 Siam原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
Tags: PHP

扫描二维码,分享此文章