PHP 标量类型与返回值类型声明
默认情况下,所有的PHP文件都处于弱类型校验模式。
PHP7增加了标量类型声明的特性,标量类型声明有两种模式:
1. 强制模式 (默认)
2. 严格模式 (强类型)
参数类型:int、 string、 float、 bool、 interfaces、 array、 callable
代码示例:
PHP NULL 合并运算符
PHP7新增加的 NULL 合并运算符(??)是用于执行isset()检测的三元运算的快捷方式。
NULL 合并运算符会判断变量是否存在且值不为NULL,如果是,它就会返回自身的值,否则返回它的第二个操作数。
代码示例:
PHP 太空船运算符(组合比较符)
PHP 7 新增加的太空船运算符(组合比较符)用于比较两个表达式 $a 和 $b,如果 $a 小于、等于或大于 $b时,它分别返回-1、0或1。
代码示例:
PHP 常量数组
在PHP5.6中仅能通过 const 定义常量数组,PHP7 可以通过 define() 来定义。
代码示例:
PHP 匿名类
PHP7支持通过 new class 来实例化一个匿名类,这可以用来替代一些”用后即焚”的完整类定义。
代码示例:
PHP Closure::call()
PHP 7 的 Closure::call() 有着更好的性能,将一个闭包函数动态绑定到一个新的对象实例并调用执行该函数。
代码示例:
PHP 过滤 unserialize()
PHP IntlChar()
PHP CSPRNG
PHP7 异常
PHP7 use 语句
PHP7可以使用一个 use 从同一个 namespace 中导入类、函数和常量
示例代码:
PHP7 错误处理
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。
示例代码:
PHP intdiv() 函数
PHP 7 新增加了 intdiv() 函数,接收两个参数,返回值为第一个参数除于第二个参数的值并取整。
|
|
PHP7 Session 选项
PHP7 废弃特性
- PHP4 风格的构造函数
- 以静态的方式调用非静态方法
- password_hash() 随机因子选项
- capture_session_meta SSL 上下文选项
PHP7 移除的扩展
- ereg
- mssql
- mysql
- sybase_ct
PHP7 移除的 SAPI
- aolserver
- apache
- apache_hooks
- apache2filter
- caudium
- continuity
- isapi
- milter
- nsapi
- phttpd
- pi3web
- roxen
- thttpd
- tux
- webjames