美文网首页php
php 7.0,7.1,7.2,7.3新特性

php 7.0,7.1,7.2,7.3新特性

作者: JJNile | 来源:发表于2019-04-05 22:16 被阅读0次

PHP7

性能速度是5.6的两倍

语法特性

参数类型声明

function a(int $num) {...}

返回值类型声明

function a(array $a): array {
  return $a;
}

null合并运算符

$username = $_GET['user'] ?? 'nobody'

define() 定义常量数组

  • 现在可以用 define() 定义数组常量。在 PHP 5.6,只可以被定义与 const。
define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // outputs "cat"

匿名类
命名空间引用优化

// PHP7以前语法的写法 
use FooLibrary\Bar\Baz\ClassA; 
use FooLibrary\Bar\Baz\ClassB; 
// PHP7新语法写法 
use FooLibrary\Bar\Baz\{ ClassA, ClassB};

7.1

移除mcrypt_*序列函数,推荐使用:openssl 序列函数

可为空(Nullable)类型

参数和返回值的类型声明可以通过在类型名称前添加一个问号(?)来标记为空(null)。表明函数参数或者返回值的类型要么为指定类型,要么为 null。

参数

function testReturn(?string $name)
{
    return $name;
}
var_dump(testReturn('yangyi'));
var_dump(testReturn(null));
var_dump(testReturn2()); #PHP Fatal error:  Uncaught ArgumentCountError: ....

返回值

function testReturn3() : ?string
{
    //return "abc";
    //return null;
}
var_dump(testReturn3());

void返回类型

void 只能用于返回值,不能用于参数中
如果在类的继承中,申明为void返回类型的方法,子类要是继承重写,也只能返回void, 否则会触发错误

function testReturn4() : void
{
    //1. 要么啥都不返还 ok
    //2. 要么只return; ok
    //return;
    //3. return null 也会报错
    //return null;
    //4. return 4 会报错
    //return 4;
}

支持负的字符串偏移

有2个更新,1是字符串直接取,2是strpos函数第三个参数支持负数。表示从尾部取。

var_dump("abcdef"[-2]); // e
var_dump(strpos("aabbcc", "b", -3)); //3

多条件 catch

可以多个一起处理。用"|" 分割。

try {
    // Some code...
} catch (ExceptionType1 | ExceptionType2 $e) {
    // 对于 ExceptionType1 和 ExceptionType2 的处理
} catch (Exception $e) {
    // ...
}

7.2

主要是底层优化

提供了更加安全的改进

Mcrypt被取消,停止使用sha1() or md5(),增加了Argon2
推荐用password_*系列

password_hash('password', PASSWORD_ARGON2I);

将 each 函数移除

7.3

废弃大小写不敏感的常量

相关文章

  • php 7.0,7.1,7.2,7.3新特性

    PHP7 性能速度是5.6的两倍 语法特性 参数类型声明 返回值类型声明 null合并运算符 define() 定...

  • php5.5 新特性

    php5.5新特性

  • php新特性

    php5.6新特性 参考 使用表达式定义常量,使用const定义常量数组 使用 ... 运算符定义变长参数函数 使...

  • PHP新特性

    PHP5.5新特性 字符串直接表达式 直接通过中括号获取字符串中的单个字符。 foreach和list() for...

  • PHP 新特性

    命名空间 namespace 其作用是按照一种虚拟的层次结构组织PHP代码,现代PHP组件和框架都放在各自全局唯一...

  • 生成器

    PHP Manual手册对于生成器的概述:PHP Manual Generator PHP Manual手册新特性...

  • php7.1加密解密 openssl_encrypt 替代

    1 概况 php7.1发布后新特性吸引了不少PHPer,大家都在讨论新特性带来的好处与便利。但是从php7.0 升...

  • PHP全栈学习笔记2

    php概述 什么是php,PHP语言的优势,PHP5的新特性,PHP的发展趋势,PHP的应用领域。 PHP是超文本...

  • PHP全栈学习笔记2

    php概述 什么是php,PHP语言的优势,PHP5的新特性,PHP的发展趋势,PHP的应用领域。 PHP是超文本...

  • 2018-3月初整理

    1.PHP执行过程2.PHP7新特性 http://php.net/manual/zh/migration70.n...

网友评论

    本文标题:php 7.0,7.1,7.2,7.3新特性

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