当前位置:首页 > PHP > 正文内容

[精选] 浅谈 PHP7 中的一些小技巧

Yusoon3年前 (2022-04-06)PHP704

[精选] 浅谈 PHP7 中的一些小技巧

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

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

use Universe\Saiyan;
use Universe\SuperSaiyan;

从 PHP 7 开始:

use Universe\{Saiyan, SuperSaiyan};

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

2. 常量可以是数组
define('NAMES', [
    'first'  => 'John',
    'middle' => 'Fitzgerald',
    'last'   => 'Kennedy'
]);

echo NAMES['last']; //显示 "Kennedy"
3. 太空船操作符

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

 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 用例,因此太空船操作符可以节省时间。另外,它的可读性更强。

4. 数组的第一 / 最后一个键 (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

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

5. 数组延展操作符 (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().

6.箭头函数 (PHP 7.4)

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

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

不需要use关键字。

7.常量的可见性(Constant visibility) (PHP7.1)
class Mother {
    private const ERROR_LEVEL_1 = 'achtung';
}

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

查看原文

扫描二维码推送至手机访问。

版权声明:本文由Yusoon - ZBlog发布,如需转载请注明出处。

本文链接:https://blog.bee1001.com/?id=3

标签: PHP7
分享给朋友:
返回列表

没有更早的文章了...

下一篇:在php中使用接口 实现 拖拽排序 功能

“[精选] 浅谈 PHP7 中的一些小技巧” 的相关文章

在php中使用接口 实现 拖拽排序 功能

列表拖拽排序是一个很常见的功能,但是后端接口如何处理却是一个令人纠结的问题。 如何实现才能达到效率最高呢先分析一个场景,假如有一个页面有十条数据,所谓的拖拽就是在这十条数据来来回回的拖,但是每次拖动都会影响到其他数据。例如把最后一条拖到最前面,那么后面九条就自动往后移,反之也是,嗯~先想象一下,排...

PHP之Trait详解

用法:通过在类中使用use 关键字,声明要组合的Trait名称,具体的Trait的声明使用Trait关键词,Trait不能实例化如下代码实例:<?php trait Dog{ public $name="dog"; public function ba...

PHP操作Redis的常用方法

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis支持的数据类型有 Stirng(字符串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合); 1,co...

[精选] 大佬们都喜欢看设计模式,你知道PHP设计模式有哪些呢?

[精选] 大佬们都喜欢看设计模式,你知道PHP设计模式有哪些呢?

设计模式,是每个程序员必须知道,必须学习的知识,虽然不算是基础,但是你必须要懂得。 我这里所了解的大概有23种设计模式,PHP常见的大概有10几种吧。总体来说设计模式分为三大类:创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式共七种:适配器模式、装饰器模式、...

navicat生成数据字典

SELECT t.TABLE_SCHEMA AS '库名称', t.TABLE_NAME AS '表名', t.COLUMN_NAME AS '字段名', t.COLUMN_TYPE AS '字段类型&#...

ThinkPHP6 高级查询

快捷查询快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如: Db::table('think_user') ->where('name|title','like...