PHP7 优势 1、新增操作符 <=> 比较 语法:$c = $a <=> $b 如果$a > $b, $c 的值为1 如果$a == $b, $c 的值为0 如果$a < $b, $c 的值为-1 ?? //原写法 $username = isset($_GET['user]) ? $_GET['user] : 'nobody'; //现在 $username = $_GET['user'] ?? 'nobody'; 2、define() 定义常量数组 define('ARR',['a','b']); echo ARR[1];// a 3、AST在PHP编译过程作为一个中间件的角色, 替换原来直接从解释器吐出opcode的方式, 让解释器(parser)和编译器(compliler)解耦, 可以减少一些Hack代码, 同时, 让实现更容易理解和可维护. PHP5 : PHP代码 -> Parser语法解析 -> OPCODE -> 执行 PHP7 : PHP代码 -> Parser语法解析 -> AST -> OPCODE -> 执行 4、匿名函数 $anonymous_func = function(){return 'function';}; echo $anonymous_func(); // 输出function 5、Unicode字符格式支持(echo "\u{9999}"); 6、Unserialize 提供过滤特性 7、命名空间引用优化 // PHP7以前语法的写法 use FooLibrary\Bar\Baz\ClassA; use FooLibrary\Bar\Baz\ClassB; // PHP7新语法写法 use FooLibrary\Bar\Baz\{ ClassA, ClassB}; PHP7 废弃 1、废弃扩展 Ereg 正则表达式 mssql mysql sybase_ct 2、废弃的特性 不能使用同名的构造函数 实例方法不能用静态方法的方式调用 3、废弃的函数 call_user_method() call_user_method_array() 换成 call_user_func() call_user_func_array() 加密函数 mcrypt_generic_end() mcrypt_ecb() mcrypt_cbc() mcrypt_cfb() mcrypt_ofb() PHP7.1 以后mcrypt_*序列函数都将被移除。推荐使用:openssl 序列函数 4、废弃的用法 $HTTP_RAW_POST_DATA 变量被移除, 使用php://input来代 ini文件里面不再支持#开头的注释, 使用”;” 移除了ASP格式的支持和脚本语法的支持: <% 和 < script language=php > PHP7 带来的变更 1、字符串处理机制修改 2、整型处理机制修改 (Int64支持, 统一不同平台下的整型长度, 字符串和文件上传都支持大于2GB. 64位PHP7字符串长度可以超过2^31次方字节.) 3、参数处理机制修改 4、foreach修改 $arr = [1,2,3]; foreach ($arr as &$val) { echo current($arr);// php7 全返回0 } 5、list修改 不再支持字符串拆分功能 空的list()赋值不再允许 6、变量处理机制修改 对变量、属性和方法的间接调用现在将严格遵循从左到右的顺序来解析,而不是之前的混杂着几个特殊案例的情况。 下面这张表说明了这个解析顺序的变化。 引用赋值时自动创建的数组元素或者对象属性顺序和以前不同了
宠物免费领养小程序,欢迎来踩