美文网首页程序员
PHP7语言新增特性整理笔记

PHP7语言新增特性整理笔记

作者: 祥森2024 | 来源:发表于2019-01-18 16:47 被阅读35次

第一,PHP7有加入几十个功能,主要是以下内容

1,改进的性能

江湖传说(当然是鸟哥证实过的例子)PHP7比 PHP5快两倍,网上有很多证明例子,可以自行百度。

2,降低内存消耗

PHP7相比已往PHP版本使用了更少的资源

3,标量类型声明 

参数和返回值类型可以被强制执行,怎么理解呢,就是现在定义参数前面可以像C语言或者java一样添加数据类型。

比如 function helloworld (int $id){}

4,支持一致性的64位

继续支持64位架构机器

5,改进异常层次结构

异常层次结构得到改善

6,许多致命错误转换成异常

异常的范围增大覆盖为许多致命的错误转化异常

7,安全随机数发生器

加入新的安全随机数生成器API

8,删除已过时的API和扩展

哪些很老旧的和不支持应用程序的扩展被干掉

9,加入新的空合并运算符(??)

它被用来代替三元运算并与 isset()函数功能,结合了三元运算符和isset()函数两者功能。

10,返回和标量类型声明,可以支持返回类型和参数类型。

11,增加了对匿名、匿名类的支持

12,零成本声明,支持零成本加入断言。

13,PHP7引擎升级到Zend Engine 3.0

提高了应用程序性能两倍,比PHP5.6 低了 50% 的内存消耗, 支持更多的用户并发量,无需任何额外的硬件,节省了企业成本。

第二,具体来看更新了哪些内容

1,标量类型声明

有两种选择:

(1),强制 - 强制性是默认模式,不需要指定。

以下几种类型的函数参数可以通过上述方式强制执行:

int,float,bool,string,interfaces,array,callable

实例:

<?php

function sum(int ...$ints){ return array_sum($ints);}

print(sum(2, '3', 4.1));

?>

输出:9

(2),严格 - 严格模式有明确的暗示。

<?php

declare(strict_types=1);

function sum(int ...$ints){return array_sum($ints);}

print(sum(2, '3', 4.1));

?>

输出:9

Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...

2,返回类型声明

以下类型返回类型是可以声明的:

int,float,bool,string,interfaces,array,callable

<?php

declare(strict_types=1);

function returnIntValue(int $value): int{return $value;}

print(returnIntValue(5));

?>

3,空合并运算符

如果存在且不是 NULL,空合并运算符返回它的第一个操作数,否则返回第二个操作数。

$_GET['username'] ?$_GET['username']  :$_POST['username']  被替换为  $_GET['username'] ?? $_POST['username'] 

4,飞船操作符

它是用于比较两个表达式。当第一个表达式较第二个表达式分别小于,等于或大于时它分别返回-1,0或1。

1 <=> 2

5,常量数组

数组常量现在可以使用 define() 函数定义

define('animals', ['dog','cat','bird'])

6,匿名类

匿名类现在可以使用 new class 来定义,用来代替以前的完整类定义。

$app = new Application;

$app->setLogger(new class implements Logger {public function log(string $msg) {print($msg);}});

7,Closure::call() 

Closure::call() 方法加入到临时绑定(bindTo)的对象范围,以简便方式封闭和调用它。

<?php

class A {private $x = 1;}

// PHP 7+ code, Define

$value = function() {return $this->x;};

print($value->call(new A));

?>

输出:1

8, 过滤unserialize()

过滤 unserialize()函数以在反序列化不受信任的数据对象时提供更好的安全性。它可以防止可能的代码注入,使开发人员能够使用序列化白名单类。

9,国际字符

新的 IntlChar 类添加其目的是公开更多的ICU功能,这个类定义了许多可用于操纵Unicode字符的静态方法和常数,你需要在使用这个类之前安装 Intl 扩展。

10,CSPRNG

跨平台的方式加密安全整数和字符串:

random_bytes() - 生成加密安全伪随机字节

random_int() - 生成加密安全伪随机整数

11,期望

assert() 函数

12,use语句

单次使用 use 语句可以用来从同一个命名空间导入类,函数和常量(而不用多次使用 use 语句)。

use com\yiibai\ClassA;

use com\yiibai\ClassB;

use com\yiibai\ClassC as C;

改为

use com\yiibai\{ClassA, ClassB, ClassC as C};

13,错误处理

大多数的错误将通过抛出异常错误处理。类似于异常,这些错误异常会冒泡,直到它们到达第一个匹配的catch块。如果没有匹配的块,那么会使用 set_exception_handler() 安装一个默认的异常处理并被调用,并在情况下,如果没有默认的异常处理程序,那么该异常将被转换为一个致命的错误,并会像传统错误那样处理。

14,intdiv()函数

它执行操作数的整数除法并返回结果为 int 类型

15,Session选项

session_start()函数接受数组参数覆盖在php.ini中设置的会话配置指令。这些选项支持 session.lazy,在默认情况下如果PHP会话数据改变,那么会覆盖任何会话数据信息。

16,弃用的功能

以下功能被弃用:

(1),PHP4风格的构造函数

<?php

class A {function A() {print('Style Constructor');}}

?>

(2),静态调用非静态方法

<?php

class A {function b() {print('Non-static call');}}

A::b();

?>

(3),password_hash()函数的salt选项

(4),capture_session_meta,SSL上下文选项。

17,删除一些扩展

ereg,mssql,mysql,sybase_ct

18,删除一些SAPI

aolserver,apache,apache_hooks,apache2filter,caudium,continuity,isapi,milter,nsapi

引用相关文章链接:https://www.yiibai.com/php7

相关文章

  • PHP7语言新增特性整理笔记

    第一,PHP7有加入几十个功能,主要是以下内容 1,改进的性能 江湖传说(当然是鸟哥证实过的例子)PHP7比 PH...

  • PHP7新特性

    PHP7新增特性 新增操作符1.“太空船”操作符“<=>” 2.操作符“??”如果变量存在且值不为NULL, 它就...

  • PHP7 新特性你知道多少?

    PHP7 新特性你知道多少? 2015.12.3发生了两件大事,PHP7问世了,Swift开源了。 最好的语言发布...

  • PHP7新增特性和改变

    新增特性和改变: 1.declare(strict_type=1); 如果不开启strict_type,PHP...

  • PHP 7 新特征

    最好的语言发布了新的版本,一个划时代的大版本:PHP7。 PHP7修复了大量BUG,新增了功能和语法糖。这些改动涉...

  • Java学习26:JDK14新特性

    2020年3月17日,Oracle公司正式发布了JDK14。共新增了16项新特性。 新的语言特性 新的语言特性有7...

  • <<深入理解ES6>>记:一

    ECMAScript之路 1.新增的语言特性涉足甚广, 包括: 模块,类,类继承,私有对象成员,可选类型注释等特性...

  • 高性能PHP7【笔记】

    一、搭建环境 二、PHP7新特性 A.OOP特性 1.类型声明 PHP7支持的形参类型声明的类型有整型、浮点型、字...

  • Modern PHP 笔记(二):良好实践

    系列笔记:Modern PHP 笔记(一):语言特性Modern PHP 笔记(二):良好实践Modern PHP...

  • Modern PHP 笔记(一):语言特性

    系列笔记:Modern PHP 笔记(一):语言特性Modern PHP 笔记(二):良好实践Modern PHP...

网友评论

    本文标题:PHP7语言新增特性整理笔记

    本文链接:https://www.haomeiwen.com/subject/vjendqtx.html