zoukankan      html  css  js  c++  java
  • PHP 7 中的一些小技巧,你知道的有哪些

    PHP 7 显著提高了整体性能。实际上主要的特性有 null 合并运算符或返回类型声明。如果你不知道它们,那么你应该去查看 PHP 文档。

    这里有一些很少人知道的、可能有用的特性。

    相同的命名空间,相同的 use

    在 PHP 7 之前,开发者经常这么做:

    use UniverseSaiyan;
    use UniverseSuperSaiyan;
    

      

    从 PHP 7 开始:

    use Universe{Saiyan, SuperSaiyan};
    

      

    函数和常量也是一样的。如果它们属于同一命名空间,则可以对它们进行分组。

     

    常量可以是数组

    define('NAMES', [
        'first'  => 'John',
        'middle' => 'Fitzgerald',
        'last'   => 'Kennedy'
    ]);
    
    echo NAMES['last']; //显示 "Kennedy"
    

      

    太空船操作符

    它的写法是这样的 <=>。它结合了比较。它表示 “小于,等于或大于”。当使用用户定义的比价函数对数组进行排序时,它非常有用,因为返回值是:

    • 0 如果值相等
    • 1 如果左边的值更大
    • -1 如果右边的值更大

    详情

    那么,让我们对以下女演员进行排序:

    $actressesWithAcademyAwards = [
        [ 'name' => 'Katharine Hepburn', 'awards' => 4 ],
        [ 'name' => 'Jessica Lange', 'awards' => 2 ],
        [ 'name' => 'Meryl Streep', 'awards' => 3 ],
        [ 'name' => 'Cate Blanchett', 'awards' => 2 ],
    ];
    

      

    你可以用一行来代替多行来进行比较:

    usort($actressesWithAcademyAwards, function ($a, $b) {
        return $a['awards'] <=> $b['awards'];
    });
    
    print_r($actressesWithAcademyAwards);
    

      

    返回:

    Array
    (
        [0] => Array
            (
                [name] => Jessica Lange
                [awards] => 2
            )
    
        [1] => Array
            (
                [name] => Cate Blanchett
                [awards] => 2
            )
    
        [2] => Array
            (
                [name] => Meryl Streep
                [awards] => 3
            )
    
        [3] => Array
            (
                [name] => Katharine Hepburn
                [awards] => 4
            )
    )
    

      

    这是一个非常常见的 PHP 用例,因此太空船操作符可以节省时间。另外,它的可读性更强。

    数组的第一 / 最后一个键 (PHP 7.3)

    从 PHP 7.3 开始,你可以很容易地得到数组的第一个键和最后一个键:

    $array = [ 'v' => 1, 'i' => 2, 'p' => 3 ];
    
    $firstKey = array_key_first($array);
    $lastKey = array_key_last($array);
    
    print_r($firstKey); // v
    print_r($lastKey); // p
    

      

    真的很简单,因为它不影响内部数组指针。

     

    数组延展操作符 (PHP 7.4)

    该特性可以实现以下功能:

    $abc = range('a', 'c');
    $def = range('d', 'f');
    $ghi = range('g', 'i');
    $all = [...$abc, ...$def, ...$ghi, 'j'];
    print_r($all);
    

      

    得到:

    Array
    (
        [0] => a
        [1] => b
        [2] => c
        [3] => d
        [4] => e
        [5] => f
        [6] => g
        [7] => h
        [8] => i
        [9] => j
    )
    

      

    在大多数情况下,它基本取代了 array_merge() .

    在大多数情况下,它基本取代了 array_merge() .

     

    箭头函数 (PHP 7.4)

    请注意,因为现在它指的是只有一个表达式的短闭包(因此有了 “短” 这个字):

    $c = 3;
    $addC = fn($x) => $x + $c;
    echo $addC(70); // 73
    

      

    不需要 use 关键字。

    常量的可见性 (PHP7.1)

    class Mother {
        private const ERROR_LEVEL_1 = 'achtung';
    }
    

      

    可见性有助于确保不应该被覆盖的内容不会被覆盖。在 PHP 7.1 之前,对于类常量(始终是公共的)来说是不可能的。

     

    Constant visibility (PHP7.1)

    class Mother {
        private const ERROR_LEVEL_1 = 'achtung';
    }
    

      

    可见性有助于确保不应被覆盖的内容不被覆盖。在PHP 7.1之前,对于类常量(始终是公共的)这是不可能的。

    结语

    PHP 7 是强大的。它速度更快,功能更强大。你知道 PHP 7 可以完成这些事吗?

    更多内容请访问

    八重樱:怎么从一名码农成为架构师的必看知识点:目录大全(持续更新)50W年薪挑战!

  • 相关阅读:
    python学习(十七) 扩展python
    python学习(十六) 测试
    python学习(十五) 屏幕抓取
    python学习(十四) 网络编程
    python学习(十三) 数据库支持
    python学习(十二) 图形化用户界面
    python学习(十一) 文件和流
    python学习(十) 自带电池
    方法编写经验总结
    如何编写方法
  • 原文地址:https://www.cnblogs.com/a609251438/p/12535108.html
Copyright © 2011-2022 走看看