浅谈PHP7中的一些小技巧

admin3年前PHP教程47
目录
相同的命名空间,相同的 use常量可以是数组太空船操作符数组的第一 / 最后一个键 (PHP 7.3)数组延展操作符 (PHP 7.4)箭头函数 (PHP 7.4)常量的可见性 (PHP7.1)Constant visibility (PHP7.1)结语
相同的命名空间,相同的 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扩展

目录查看是否已经加载了扩展动态加载扩展测试代码:在编译并完成 php.ini 的配置之后,我们就成功的安装了一个 PHP 的扩展。不过, PHP 也为我们提供了两个在动态运行期间可以查看扩展状态以及加...

5个提升高防服务器安全性的小技巧?使用国内电信100G高防服务器需要注意的有哪些?

互联网中网络环境更为复杂出现多种多样的网络流量攻击,而且出现频率也越来越高。租赁高防服务器的用户同样也需要面临网络安全方面的问题,要关注高防服务器的软硬件安全性的升级,以下分享5个升级高防服务器安全性...

使用台湾多IP服务器有哪些好处

以下是一篇关于台湾多IP服务器的文章,希望对您有所帮助:台湾多IP服务器是一种网络服务器,可以为您提供多个IP地址。这意味着您可以使用不同的IP地址来访问互联网,从而提高您的网络安全和隐私保护。此外,...

ajax是一种什么技术(为什么vue不使用ajax)

ajax是一种什么技术ajax是一种用来改善用户体会的技术,其本质是使用浏览器提供的一个特别的目标(XMLHttpRequest,也可称之为ajax目标)向服务器发送异步恳求。服务器使用这些数据对当时...

厦门高防服务器购买哪家的好如何选择

厦门高防服务器购买哪家的好如何选择?选择一家可靠的厦门高防服务器服务提供商非常重要,以下是选择厦门高防服务器服务提供商的几个建议:了解服务提供商的背景和信誉:选择一家有良好声誉和信誉的服务提供商,可以...

PHP设计模式之原型模式示例详解

前言原型模式其实更形象的来说应该叫克隆模式。它主要的行为是对对象进行克隆,但是又把被克隆的对象称之为最初的原型,于是,这个模式就这样被命名了。说真的,从使用方式来看真的感觉叫克隆模式更贴切一些。Gof...