最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 聊聊PHP8的一些语法新特性

    本篇文章向大家介绍php8的一些语法新特性,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    PHP8的一些语法新特性

    命名参数

    function test($name, $age='18', $sex='男') {
        echo $name . '-------' . $age . '--------'. $sex;
    }
    test('Landy', age: 20, sex: '女'); //Landy-------20--------女

    还可以跳过参数

    test('Landy', sex: '女'); //Landy-------18--------女

    参数的顺序可以不固定了

    test(age: 30, sex: '女', name: 'tom'); //tom-------30--------女
    <?php
    class Person {
        public static function test($name, $age) {
            echo $name.'|'.$age;
        }
    }
    Person::test(age:100, name:'Landy'); //Landy|100

    还可以这样

    function test1($arg1,$arg2, ...$args) {
        print_r($args);
    }
    test1(1,2, name:'Landy', age:11, sex:2);
    Array
    (
        [name] => Landy
        [age] => 11
        [sex] => 2
    )

    向下不兼容,PHP8.0 后的函数都可以使用命名参数

    match 表达式

    $a = 8.0;
    echo match($a) {
        8.0 => '匹配8.0',
        '8.0' => 'test 8.0',
        default => '没有匹配值'
    };  //匹配8.0

    可以和表达式匹配

    function test3() {
        return 8.0;
    }
    $a = 8.0;
    echo match($a) {
        test3() => '匹配函数',
        8.0 => '匹配8.0',
        '8.0' => 'test 8.0',
        9,10,11 => '多次匹配', //多次匹配
        default => '没有匹配值'
    };  //匹配函数

    match 为强类型匹配,还有一点需要注意的是之前 match (){} 花括号后要写 ;,switch 是不用的

    构造函数里可直接定义属性

    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

    推荐学习:《PHP视频教程


    以上就是【聊聊PHP8的一些语法新特性】的详细内容。

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!

    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。

    如有侵权请发送邮件至1943759704@qq.com删除

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 聊聊PHP8的一些语法新特性
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情