1)、为 unserialize() 提供过滤的特性:可以防止非法数据进行代码注入,提供了更安全的反序列化数据。
【注】所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值=>序列化;
因为mysql没法存数组类型的数据,序列化之后就转变成了字符全就可以存进去了。
unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值
2)、编码方面的特性
php7在国际化与字符编码支持模块中通过 intl 扩展来支持国际化 (i18n) 和本地化 (l10n) 。此扩展仅仅是对 ICU 库的基础包装,并提供了和 ICU 库类似的方法和特性。
PHP 7 通过新的 IntlChar 类暴露出 ICU 中的 Unicode 字符特性。这个类自身定义了许多静态方法用于操作多字符集的 unicode 字符
3)、引入几个 CSPRNG(伪随机数产生器) 函数
PHP 7 通过引入几个 CSPRNG(伪随机数产生器) 函数提供一种简单的机制来生成密码学上强壮的随机数。
random_bytes() - 加密生存被保护的伪随机字符串。
random_int() - 加密生存被保护的伪随机整数。
4)、异常处理
PHP程序出错后过去zend引擎会发生致命错误并终止程序运行,PHP7可以使用try/catch捕获错误。
5)、session
php7 以前,我们使用 session 前都是要先代用 session_strat() 函数来初始化的,但这个函数是没有参数可以传的,session 的配置都在 php.ini 文件中。
在 php7 后 session_start() 可以接受一个 array 作为参数, 用来覆盖 php.ini 文件中设置的会话配置选项。
6)、丢弃的特性
①、PHP 7+ 版本移除了以下扩展:
erag, mysql mssql Sybase_ct
②、PHP 7+ 版本移除了以下 SAPI:
【注】SAPI:软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speech synthesis)。这两个技术都需要语音引擎的支持。
aolserver apache apache_hooks apache2filter caudium continuity isapi milter nsapi phttpd pi3web roxen thttpd tux webjames
③、password_hash() 随机因子选项
函数原 salt 量不再需要由开发者提供了。函数内部默认带有 salt 能力,无需开发者提供 salt 值
④、capture_session_meta SSL 上下文选项
废弃了 "capture_session_meta" SSL 上下文选项。 在流资源上活动的加密相关的元数据可以通过 stream_get_meta_data() 的返回值访问。
涉及内核深层性能方面的优化,这里暂不研究。