php7 新增功能实例总结

(编辑:jimmy 日期: 2024/10/5 浏览:2)

本文实例总结了php7 新增功能。分享给大家供大家参考,具体如下:

一、核心

  • 增加了group use语法声明。RFC: https://wiki.php.net/rfc/group_use_declarations
  • 增加了null合并运算符"t0">①PHP标量类型与返回值类型声明

    标量类型声明

    默认情况下,所有的PHP文件都处于弱类型校验模式。

    PHP 7 增加了标量类型声明的特性,标量类型声明有两种模式:

    • 强制模式 (默认)严格模式

    • 严格模式

    标量类型声明语法格式:

    declare(strict_types=1);

    代码中通过指定 strict_types的值(1或者0),1表示严格类型校验模式,作用于函数调用和返回语句;0表示弱类型校验模式。

    可以使用的类型参数有:

    • int

    • float

    • bool

    • string

    • interfaces

    • array

    • callable

    强制模式实例:

    <"htmlcode">
    
    9

    实例汇总将参数 4.1 转换为整数 4 后再相加。

    严格模式实例:

    <"htmlcode">
    
    <"htmlcode">
    
    5

    返回类型声明错误实例:

    <"t1">②PHP NULL 合并运算符
    

    PHP 7 新增加的 NULL 合并运算符("htmlcode">

    $site = isset($_GET['site']) "htmlcode">
    
    $site = $_GET['site'] "htmlcode">
    
    <"htmlcode">
    
    PHP中文网
    PHP中文网
    PHP中文网
    

    ③PHP 太空船运算符(组合比较符)

    PHP 7 新增加的太空船运算符(组合比较符)用于比较两个表达式 $a 和 $b,如果 $a 小于、等于或大于 $b时,它分别返回-1、0或1。

    实例

    <"a" <=> "a");
    print(PHP_EOL); 
    print( "a" <=> "b");
    print(PHP_EOL); 
    print( "b" <=> "a");
    print(PHP_EOL); 
    "htmlcode">
    
    0
    -1
    1
     
    0
    -1
    1
     
    0
    -1
    1
    

    ④PHP 常量数组

    在 PHP 5.6 中仅能通过 const 定义常量数组,PHP 7 可以通过 define() 来定义。

    实例

    <"htmlcode">
    
    PHP

    ⑤PHP Closure::call()

    PHP 7 的 Closure::call() 有着更好的性能,将一个闭包函数动态绑定到一个新的对象实例并调用执行该函数。

    实例

    <"htmlcode">
    
    1
    1
    

    ⑥PHP CSPRNG

    CSPRNG(Cryptographically Secure Pseudo-Random Number Generator,伪随机数产生器)。

    PHP 7 通过引入几个 CSPRNG 函数提供一种简单的机制来生成密码学上强壮的随机数。

    • random_bytes() - 加密生存被保护的伪随机字符串。

    • random_int() - 加密生存被保护的伪随机整数

    random_bytes()

    语法格式

    string random_bytes ( int $length )

    参数

    • length - 随机字符串返回的字节数。

    返回值

    • 返回一个字符串,接受一个int型入参代表返回结果的字节数。

    实例

    <"htmlcode">
    
    6f36d48a29

    random_int()

    语法格式

    int random_int ( int $min , int $max )

    参数

    • min - 返回的最小值,必须是大于或等于 PHP_INT_MIN 。

    • max - 返回的最大值,必须是小于或等于 PHP_INT_MAX 。

    返回值

    • 返回一个指定范围内的int型数字。

    实例

    <"htmlcode">
    
    723
    -64
    

    ⑦PHP 匿名类

    PHP 7 支持通过 new class 来实例化一个匿名类,这可以用来替代一些"用后即焚"的完整类定义。

    实例

    <"我的第一条日志"); 
    "htmlcode">
    
    我的第一条日志

    ⑧PHP 7 use 语句

    PHP 7 可以使用一个 use 从同一个 namespace 中导入类、函数和常量:

    // PHP 7 之前版本需要使用多次 
    use use some\namespace\ClassA; 
    use some\namespace\ClassB; 
    use some\namespace\ClassC as C; 
    use function some\namespace\fn_a; 
    use function some\namespace\fn_b; 
    use function some\namespace\fn_c; 
    use const some\namespace\ConstA; 
    use const some\namespace\ConstB; 
    use const some\namespace\ConstC; 
     
    // PHP 7+ 之后版本可以使用一个 use 导入同一个 namespace 的类 
    use some\namespace\{ClassA, ClassB, ClassC as C}; 
    use function some\namespace\{fn_a, fn_b, fn_c}; 
    use const some\namespace\{ConstA, ConstB, ConstC}; 
    "alpn_protocols”选项。

    四、反射

    • 增加了ReflectionGenerator类,用于yield from Traces, current file/line等等。
    • 增加了ReflectionType类,更好的支持新的返回值和标量声明功能。

    五、流

    windows版本增加了块读取的选项。可以通过传递array("pipe" => array("blocking" => true))参数来激活。

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。