浅谈PHP7中的一些小技巧

吾爱主题 阅读:159 2021-11-17 16:01:00 评论:0
目录
  • 相同的命名空间,相同的 use
  • 常量可以是数组
  • 太空船操作符
  • 数组的第一 / 最后一个键 (PHP 7.3)
  • 数组延展操作符 (PHP 7.4)
  • 箭头函数 (PHP 7.4)
  • 常量的可见性 (PHP7.1)
  • Constant visibility (PHP7.1)
  • 结语

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

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

?
1 2 use Universe\Saiyan; use Universe\SuperSaiyan;

从 PHP 7 开始:

?
1 use Universe\{Saiyan, SuperSaiyan};

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

常量可以是数组

?
1 2 3 4 5 6 7 define( 'NAMES' , [      'first'  => 'John' ,      'middle' => 'Fitzgerald' ,      'last'   => 'Kennedy' ]);   echo NAMES[ 'last' ]; //显示 "Kennedy"

太空船操作符

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

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

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

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

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

?
1 2 3 4 5 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 开始,你可以很容易地得到数组的第一个键和最后一个键:

?
1 2 3 4 5 6 7 $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)

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

?
1 2 3 4 5 $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)

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

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

不需要use关键字。

常量的可见性 (PHP7.1)

?
1 2 3 class Mother {      private const ERROR_LEVEL_1 = 'achtung' ; }

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

Constant visibility (PHP7.1)

?
1 2 3 class Mother {      private const ERROR_LEVEL_1 = 'achtung' ; }

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

结语

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

以上就是浅谈PHP7中的一些小技巧的详细内容,更多关于PHP7中的一些小技巧的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/a609251438/p/12535108.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容