PHP7的新特性

  • php7的性能有极大的提升。

  • 太空串操作符<=>用于比较两个表达式,例如当a分别小于丶等于丶大于b时分别会返回-1,0,1

  • 类型提示, 通过使用declare(strict_types=1); , strict_types=1表示开启严格模式,当传入的参数类型不合法时会报错。

  • null合并操作符: ??, php7前使用三元表达式来判断一个值是否为null来返回不同的值,如:`_GET['page']) ? page = isset($_GET['page']) ?? 1;`。

  • 常量数组, 通过define('NUMS', [1, 2, 3]);定义常量数组,该数组是不可以被修改的。

  • NameSpace批量导入, php7前导入命名空间需要一行一个,如:

use Encore\Admin\Auth\Database\Administrator;
use Encore\Admin\Auth\Database\Menu;
use Encore\Admin\Auth\Database\Role;
use Encore\Admin\Auth\Database\Permission;

php7使用一行代码即可,节省了代码量。use Encore\Admin\Auth\Database\{Administrator, Menu, Role, Permission};

  • throwable接口, 例如该段代码:
try {
    underfindfunc();
}catch (Error $e){
    var_dump($e);
}

在php5中catch无法捕获, 在php7中可以捕获, 还可以通过set_exception_handle()进行捕获:

// 通过此函数也可以捕获
set_exception_handler(
    function ($e) {
        var_dump($e);
    }
);

underfindfunc();
  • Closure::call(), 通过闭包函数可操作类私有变量, 例如:
<?php

class Person {
    private $age = 10;
}

$f = function () {
    $this->age = 20;
    return $this->age;
};

echo $f->call(new Person()); // 输出20
  • intdiv 整除函数, 在php5中整除需要进行转int,如:`num = intdiv(10, 3);`。

  • list的方括号写法, php5中list:

$arr = [1,2,3];
list($a, $b, $c) = $arr;

php7(php7.1之后)中可简化为:

$arr = [1,2,3];
[$a, $b, $c] = $arr;
  • 匿名类, php7中可以通过new class来创建匿名类对象, 如:
$obj = new class {
  public $num = 10;
};

echo $obj->num;
  • 为 unserialize() 提供过滤的特性,可以防止非法数据进行代码注入,提供了更安全的反序列化数据。

  • IntlChar, 这个类自身定义了许多静态方法用于操作多字符集的 unicode 字符。

  • random_bytes() - 加密生生成被保护的伪随机字符串, random_int() - 加密生成被保护的伪随机整数。

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

  • 移除扩展:ereg,mssql,mysql,sybase_ct

全部评论

相关推荐

凉风落木楚山秋:哈工爷200也去吗
点赞 评论 收藏
分享
06-13 17:33
门头沟学院 Java
顺序不记了,大致顺序是这样的,有的相同知识点写分开了1.基本数据类型2.基本数据类型和包装类型的区别3.==和equals区别4.ArrayList与LinkedList区别5.hashmap底层原理,put操作时会发生什么6.说出几种树型数据结构7.B树和B+树区别8.jvm加载类机制9.线程池核心参数10.创建线程池的几种方式11.callable与runnable区别12.线程池怎么回收线程13.redis三剑客14.布隆过滤器原理,不要背八股,说说真正使用时遇到了问题没有(我说没有,不知道该怎么回答了)15.堆的内存结构16.自己在写项目时有没有遇见过oom,如何处理,不要背八股,根据真实经验,我说不会17.redis死锁怎么办,watchdog机制如何发现是否锁过期18.如何避免redis红锁19.一个表性别与年龄如何加索引20.自己的项目的QPS怎么测的,有没有真正遇到大数量表21.说一说泛型22.springboot自动装配原理23.springmvc与springboot区别24.aop使用过嘛?动态代理与静态代理区别25.spring循环依赖怎么解决26.你说用过es,es如何分片,怎么存的数据,1000万条数据怎么写入库中27.你说用limit,那么在数据量大之后,如何优化28.rabbitmq如何批次发送,批量读取,答了延迟队列和线程池,都不对29.计网知不知道smtp协议,不知道写了对不对,完全听懵了30.springcloud知道嘛?只是了解反问1.做什么的?短信服务,信息量能到千万级2.对我的建议,基础不错,但是不要只背八股,多去实际开发中理解。面试官人不错,虽然没露脸,但是中间会引导我回答问题,不会的也只是说对我要求没那么高。面完问我在济宁生活有没有困难,最快什么时候到,让人事给我聊薪资了。下午人事打电话,问我27届的会不会跑路,还在想办法如何使我不跑路,不想扣我薪资等。之后我再联系吧,还挺想去的😭,我真不跑路哥😢附一张河科大幽默大专图,科大就是大专罢了
查看30道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务