博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让一个做了10PHPer的妹子员告诉你PHP7 的新特性的使用
阅读量:6279 次
发布时间:2019-06-22

本文共 2219 字,大约阅读时间需要 7 分钟。

PHP7 的新特性大概浏览下,还是能在工作的效率上有很大益处的。

1,性能提升

这个我就不做测试了,哈哈

2,类型声明

class Student{ public function __construct()  { $this->name = 'durban'; } } $student = new Student();function enroll(Student $student, array $classes){ foreach ($classes as $class) { echo "Enrolling " . $student->name . " in " . $class . "\n"; } }// enroll("name", ["class 1", "class 2"]);// Fatal error: Uncaught TypeError: Argument 1 passed to enroll() must be an instance of Student, string given// enroll($student, "class"); // Fatal error: Uncaught TypeError: Argument 2 passed to enroll() must be of the type array, string givenenroll($student, array("class 1", "class 2"));function stringTest(string $string){ echo $string . "\n"; } stringTest("a string");

3,可以声明严格类型校验模式 , 此声明必须第一个声明

declare (strict_types = 1);

4, 标量类型提示

function getTotal(float $a, float $b) { return $a + $b; } // getTotal('a', 2); //Argument 1 passed to getTotal() must be of the type float, string given,$total = getTotal(3, 2);echo $total . "\n";

5, 返回类型声明

function getSum(float $a, float $b): int {
// return $a + $b; // Fatal error: Uncaught TypeError: Return value of getTotal() must be of the type integer, float returned return (int) ($a + $b); // truncate float like non-strict }$sum = getSum(3, 6);echo $sum . "\n";

6, 错误处理

新的继承如下

|- Exception implements Throwable

|- …

|- Error implements Throwable

|- TypeError extends Error

|- ParseError extends Error

|- ArithmeticError extends Error

|- DivisionByZeroError extends ArithmeticError

|- AssertionError extends Error

try { // Code that may throw an Exception or Error. } catch (Throwable $t) { // Executed only in PHP 7, will not match in PHP 5} catch (Exception $e) { // Executed only in PHP 5, will not be reached in PHP 7}

7, Null Coalesce Operator

$name = $firstName ?? "Guest";

等同于

if (!empty($firstName)) {
$name = $firstName; } else {
$name = "Guest"; }

还可以像下面这样使用

$name = $firstName ?? $username ?? $placeholder ?? “Guest”;

8, Spaceship Operator

$compare = 2 <=> 1

等同于下面

2 < 1? return -12 = 1? return 02 > 1? return 1

9,Easy User-land CSPRNG: random_int and random_bytes.

$int = random_int(1, 2); var_dump($int); $bytes = random_bytes(5); var_dump(bin2hex($bytes));

这些你都看懂了吗!这是我的一个技术交流群:“535686202”热烈欢迎大家加入学习

转载地址:http://sciva.baihongyu.com/

你可能感兴趣的文章
数据库
查看>>
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>