iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >浅谈PHP7中的一些小技巧
  • 288
分享到

浅谈PHP7中的一些小技巧

2024-04-02 19:04:59 288人浏览 薄情痞子
摘要

目录相同的命名空间,相同的 use常量可以是数组太空船操作符数组的第一 / 最后一个键 (PHP 7.3)数组延展操作符 (php 7.4)箭头函数 (PHP 7.4)常量的可见性

相同的命名空间,相同的 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中的一些小技巧的资料请关注编程网其它相关文章!

--结束END--

本文标题: 浅谈PHP7中的一些小技巧

本文链接: https://www.lsjlt.com/news/127136.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈PHP7中的一些小技巧
    目录相同的命名空间,相同的 use常量可以是数组太空船操作符数组的第一 / 最后一个键 (PHP 7.3)数组延展操作符 (PHP 7.4)箭头函数 (PHP 7.4)常量的可见性 ...
    99+
    2024-04-02
  • 浅谈Android Studio 3.0 的一些小变化
    前言一大早还在北京拥挤的地铁里,我的CTO闫哥在微信里给我发了一条信息:Android Studio 3.0发布了。为什么会这么关注Android Studio 3.0 的版本发布呢?主要是因为公司即将开发的新app准备使用Kotlin语言...
    99+
    2023-05-30
    android studio 3.0
  • PHP7中的使用技巧
    这篇文章给大家分享的是有关PHP7中的使用技巧的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。相同的命名空间,相同的 use在 PHP 7 之前,开发者经常这么做:use Universe\Saiyan;...
    99+
    2023-06-15
  • 浅谈HBuilderX开发小程序的一些问题
    第一步:你要有一个微信小程序,在微信开发者平台上 至于怎样申请微信开发者appid和微信开发者平台上面的东西可以自己去百度下,重点讲的是在HBuilderX开发小程序 第二步:在你...
    99+
    2024-04-02
  • 分享Vue的一些小技巧
    这篇文章主要介绍“分享Vue的一些小技巧”,在日常操作中,相信很多人在分享Vue的一些小技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分享Vue的一些小技巧”的疑惑有所帮...
    99+
    2024-04-02
  • 使用Laravel的一些小技巧
    这篇文章给大家分享的是有关使用Laravel的一些小技巧的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Laravel 是什么Laravel 是一套简洁、优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码...
    99+
    2023-06-14
  • vue项目中less的一些使用小技巧
    目录前言 一、样式穿透 1.  什么是样式穿透?2.  如何使用? 二、混入 1.  什么是混入? 2.  如何使用?三、 less自动化导入...
    99+
    2024-04-02
  • 浅谈一下Spring中的createBean
    目录找到BeanClass并且加载类实例化前实例化Supplier创建对象工厂方法创建对象推断构造方法BeanDefionition 的后置处理实例化后属性填充Aware回调初始化前...
    99+
    2024-04-02
  • Intellij IDEA的一些调试技巧(小结)
    程序员的工作内容,除了大部分时间写代码之外,因为有不少的时间是用在调试代码上。甚至说不是在调试代码,就是即将调试代码。 :)今天我们来谈谈调试代码的一些技巧,在使用IDE提供的debugger时一些快速定位问题的方式。看到这里的朋友,不要马...
    99+
    2023-05-30
    intellij idea 调试
  • CSS性能优化的一些小技巧
    这篇文章主要介绍了CSS性能优化的一些小技巧,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设...
    99+
    2023-06-14
  • 浅谈Vue+AntDesignform表单的一些坑
    目录设置默认值的坑自定义 v-decorator 组件的坑最近在用 vue + ant 写项目发现 from 组件的坑还是比较多的 设置默认值的坑 控制台报 Warning: You...
    99+
    2024-04-02
  • 浅谈vue-cli5关于yarn的一个小坑
    目录问题解决方案原因问题 昨天有小伙伴下了我的 DEMO之后反映运行报错。 因为这个项目环境我测试过许多次,不管是npm还是yarn都能正常运行,所以听到运行报错时下意识地就认为是...
    99+
    2024-04-02
  • 浅谈C++11中=delete的巧妙用法
    目录巧妙用法总结C++11中,当我们定义一个类的成员函数时,如果后面使用"=delete"去修饰,那么就表示这个函数被定义为deleted,也就意味着这个成员函数...
    99+
    2024-04-02
  • 浅谈StringBuilder类的capacity()方法和length()方法的一些小坑
    今天在做项目的过程中遇见一个StringBuilder.delete()删除得不到自己期望结果问题,一个截取字符串的问题,总得不到自己所期望的答案: 问题如下: stringBu...
    99+
    2024-04-02
  • 浅谈Java编程之if-else的优化技巧总结
    一、使用策略枚举来优化if-else 看到网上蛮多人推荐使用策略模式来优化if-else,但我总觉得,搞一堆策略类来优化大批量if-else,虽然想法很好,但无意之中很可能又会创造出...
    99+
    2024-04-02
  • springboot更新配置Swagger3的一些小技巧
    1.引入依赖,版本3.0.0只引入一个即可 <dependency> <groupId>io.springfox</grou...
    99+
    2024-04-02
  • 浅谈一下Java中的堆和栈
    Java数据类型在执行过程中存储在两种不同形式的内存中:栈和堆,它们通常由运行Java虚拟机(JVM)的底层平台维护。本文从Java软件开发的角度提供了对这两种内存类型的一些见解。 ...
    99+
    2023-05-18
    Java Java
  • Kotlin开发的一些实用小技巧总结
    前言随着Google I/O大会的召开,Google宣布将支持Kotlin作为Android的开发语言,最近关于Kotlin的文章、介绍就异常的活跃。本文主要给大家介绍了关于Kotlin开发的一些实用小技巧,分享出来供大家参考学习,下面话不...
    99+
    2023-05-30
    kotlin 实用技巧
  • Angular项目中使用scss文件的一些技巧小结
    目录使用 Angular CLI 新建一个 Angular 项目:Angular 项目中导入 node_modules 文件夹下文件的一些技巧附:angular5 配置使用sass总...
    99+
    2024-04-02
  • 浅谈一下Python中的with用法
    目录一、With语句是什么二、with如何工作三、相关术语一、With语句是什么 有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常...
    99+
    2023-05-15
    Python with Python with用法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作