• 【黄啊码】用PHP7性能居然是5.6的三倍?赶紧看看它有什么新特性-续


    大家好,我是黄啊码,上节课的东西学完了吧?脑瓜子嗡嗡的吧?来,继续,让脑瓜子一次性嗡个够,压力大,才有动力。

    目录

    PHP CSPRNG

    PHP 7 use 语句 

    PHP 7 错误处理 

    PHP intdiv() 函数 

    PHP 7 Session 选项

    PHP 7废弃的特性和扩展


    PHP CSPRNG

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

    • random_bytes() - 随机生成字符串。

    • random_int() - 随机生成整数。

    举个栗子:

    1. $bytes = random_bytes(5);
    2. print(bin2hex($bytes));
    3. ?>

    结果:6f36d48a29

    1. print(random_int(100, 999));
    2. print(PHP_EOL);
    3. print(random_int(-1000, 0));
    4. ?>

    执行结果:723         -64

    PHP 7 use 语句 

    // PHP 7 之前版本需要使用多次 use

    更少的代码实现同样的功能,少量不加价,灰常省时间,看板看了都感动哭了

    1. use some\namespace\ClassA;
    2. use some\namespace\ClassB;
    3. use some\namespace\ClassC as C;
    4. // PHP 7+ 之后版本可以使用一个 use 导入同一个 namespace 的类
    5. use some\namespace\{ClassA, ClassB, ClassC as C};

    PHP 7 错误处理 

    PHP 7 改变了大多数错误的报告方式。不同于 PHP 5 的传统错误报告机制,现在大多数错误被作为 Error 异常抛出。

    这种 Error 异常可以像普通异常一样被 try / catch 块所捕获。如果没有匹配的 try / catch 块, 则调用异常处理函数(由 set_exception_handler() 注册)进行处理。 如果尚未注册异常处理函数,则按照传统方式处理:被报告为一个致命错误(Fatal Error)。

    Error 类并不是从 Exception 类 扩展出来的,所以用 catch (Exception $e) { ... } 这样的代码是捕获不 到 Error 的。你可以用 catch (Error $e) { ... } 这样的代码,或者通过注册异常处理函数( set_exception_handler())来捕获 Error。

    Error异常层次结构图:

    PHP intdiv() 函数 

     PHP 7 新增加了 intdiv() 函数,接收两个参数,返回值为第一个参数除于第二个参数的值并取整。

    1. echo intdiv(9,3),PHP_EOL;

    结果=》》》3

    PHP 7 Session 选项

    PHP 7 session_start() 函数可以接收一个数组作为参数,可以覆盖 php.ini 中 session 的配置项。

    这个特性也引入了一个新的 php.ini 设置(session.lazy_write), 默认情况下设置为 true,意味着 session 数据只在发生变化时才写入。

    除了常规的会话配置指示项, 还可以在此数组中包含 read_and_close 选项。如果将此选项的值设置为 TRUE, 那么会话文件会在读取完毕之后马上关闭, 因此,可以在会话数据没有变动的时候,避免不必要的文件锁。

    例子:

    1. session_start([
    2. 'cache_limiter' => 'private',
    3. 'read_and_close' => true,
    4. ]);
    5. ?>

    PHP 7废弃的特性和扩展

    这里就略过了,需要自己查看文档,因为废弃的一般在编程的时候都会报错,自然就知晓,记太多反而怕大家脑容量不够,哈哈哈。

  • 相关阅读:
    【树莓派不吃灰】使用frp内网穿透,实现远程访问树莓派
    蓝书 0x01 位运算
    大数据之Hadoop(一)
    架构基本概念和架构本质
    C51--串口
    Java设计模式-代理模式
    Android 弹出Dialog的时候如何弹出软键盘(输入法)
    数据库管理-第152期 Oracle Vector DB & AI-04(20240220)
    Linux常用命令
    【故障公告】数据库服务器今年第七次 CPU 100% 故障(12月8日又出现)
  • 原文地址:https://blog.csdn.net/TiaoZhanJi_Xian/article/details/127882777