浅谈PHP7中的一些小技巧

 更新时间:2021年05月29日 11:54:17   作者:八重樱  
PHP7显著提高了整体性能。实际上主要的特性有null合并运算符或返回类型声明。如果你不知道它们,那么你应该去查看PHP文档。这里有一些很少人知道的、可能有用的特性。

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

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

use Universe\Saiyan;
use Universe\SuperSaiyan;

从 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 可以完成这些事吗?

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

相关文章

  • PHP的Yii框架中过滤器相关的使用总结

    PHP的Yii框架中过滤器相关的使用总结

    这篇文章主要介绍了PHP的Yii框架中过滤器相关的使用总结,文中列举了一些常用的核心过滤器,需要的朋友可以参考下
    2016-03-03
  • 一文总结常用PHP业务逻辑demo

    一文总结常用PHP业务逻辑demo

    这篇文章主要为大家介绍了常用PHP业务逻辑的demo总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • php提交表单发送邮件的方法

    php提交表单发送邮件的方法

    这篇文章主要介绍了php提交表单发送邮件的方法,实例分析了php操作表单发送邮件的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • php仿微信红包分配算法的实现方法

    php仿微信红包分配算法的实现方法

    这篇文章主要介绍了php仿微信红包分配算法的实现方法,涉及简单的php数学运算与字符串操作相关技巧,需要的朋友可以参考下
    2016-05-05
  • PHP中的输出缓冲控制详解

    PHP中的输出缓冲控制详解

    这篇文章主要介绍了PHP中的输出缓冲控制的相关资料,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    2021-04-04
  • PHP设计模式之原型模式定义与用法详解

    PHP设计模式之原型模式定义与用法详解

    这篇文章主要介绍了PHP设计模式之原型模式定义与用法,结合实例形式详细分析了php原型模式的概念、原理、用法及相关使用注意事项,需要的朋友可以参考下
    2018-04-04
  • windows下开发并编译PHP扩展的方法

    windows下开发并编译PHP扩展的方法

    开发PHP扩展对于普通程序员来讲可能一直是一件很神秘的工作,其实,只要你对C语言熟悉,了解了开发PHP扩展的步骤和规则,开发PHP扩展也是一件很普通的工作。
    2011-03-03
  • PHP钩子实现方法解析

    PHP钩子实现方法解析

    这篇文章主要介绍了PHP钩子实现方法,结合实例形式分析了php钩子的原理与相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • PHP常用字符串函数用法实例总结

    PHP常用字符串函数用法实例总结

    这篇文章主要介绍了PHP常用字符串函数用法,结合实例形式总结分析了PHP常用字符串函数基本功能、用法及相关注意事项,需要的朋友可以参考下
    2020-06-06
  • php获取微信基础接口凭证Access_token

    php获取微信基础接口凭证Access_token

    这篇文章主要为大家详细介绍了php获取微信基础接口凭证Access_token,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08

最新评论