浅谈PHP7中的一些小技巧
发布:smiling 来源: PHP粉丝网 添加日期:2022-05-01 19:39:29 浏览: 评论:0
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().
箭头函数 (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 可以完成这些事吗?
Tags: PHP7小技巧
- 上一篇:详解PHP服务器如何在有限的资源里最大提升并发能力
- 下一篇:最后一页
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)