PHP RFC: 7.2 弃用功能 已获批准。让我们来看一看,有哪些功能未来会抛出弃用提醒:
__autoload 魔术方法,已经被 PHP 5.1 中的 spl_autoload_register 取代,并且在文档中不建议使用。spl_autoload_register() 的一个主要优点,是能够提供多个组合的自动加载器,从而降低库的互操作性。这两种加载机制是互斥的,使用 __autoload 的代码不能与使用 spl_autoload_register 代码交互操作。由于后者更常用,并且也被 Composer 使用,所以 __autoload() 机制现在仅具有非常有限的适用性。
当一个非致命错误被抛出时,如果在 ini 中设置了 track_errors (默认情况下已禁用),并且该错误未被错误处理器程序处理,则会在本地作用域中创建 $php_errormsg 变量。
整个行为非常神奇,除了 ini 相关的部分。error_get_last 函数提供了一种更干净的方式,来检索最后一个错误。PHP 7 还提供了 error_clear_last 函数,覆盖了 $php_errormsg 最后可能的用例,并且没有神奇的作用域操作。
create_function() 是对 eval() 的简单包装。此函数可以创建一个函数,函数的参数列表和函数主体作为字符串参数传入。在 PHP 5.3 引入闭包之前,它提供了一种创建近似于 lambda 函数的方法。
由于其操作的性质,create_function() 除了是潜在的安全问题来源之外,还具有非常差的性能和内存使用特性。在各种情况下,使用真正的闭包是首选。
在 ini 中设置 mbstring.func_overload 将允许用 mbstring 扩展中的相似功能替换掉字符串函数的子集。例如,strlen() 将不再返回以字节为单位的字符串长度,而是根据当前选择的内部编码返回代码点中的长度。
这意味着使用 mbstring.func_overload 的代码,与几乎所有在基本字符串操作正常工作的假设下编写的代码都不兼容。一些库完全禁止 func_overload (例如 Symfony),其它的则会出现一些不可察觉的行为变化。希望支持 func_overload 的代码需要有在普通字符串函数和具有8位编码的 mbstring 函数之间切换的条件(但是,通常只有加密库才会这么做)。
(unset)cast 转换一个值为 null。
这表示 (unset)expr 只是一个总返回 null 并且没有其它副作用的表达式。除了无用以外,也容易让人懵逼。很多人合理的假设 (unset)$a 的行为类似于 unset($a) ,而实际上没那么回事。
parse_str() 函数用于将查询字符串解析为第二个参数传入的数组,如果没有传入,则解析为本地符号表。
第二种行为是来自 register_globals 黑暗时代的残余。当处理用户提供的数据时,存在严重的安全隐患。
gmp_random() 函数返回一个 0 到 2**($n*BITS\_PER\_LIMB)-1 之间的随机 GMP 数,其中 $n 是函数参数,BITS_PER_LIMB 是 GMP/MPIR 实现的平台特定参数,未向用户公开。因此,使用此功能需要猜测 limb 大小,并且有平台依赖性。
作为补救 PHP 5.6 引入了可以精确控制使用的随机数范围的 gmp_random_bits() 和 gmp_random_range() 函数。应始终优先使用这些函数,而不是 gmp_random()。
each() 函数被用于遍历一个数组,类似于 foreach。每次调用时返回一个具有当前 key 和 value 的数组,并将内部数组指针移动到下一个位置。手册中介绍的典型用法如下:
reset($array);
while (list($key, $val) = each($array)) {
echo "$key => $val\n";
}
each() 函数不如 foreach,并且比它慢十倍。
assert() 函数具有两种操作模式:如果它传入的不是字符串,它会断言该值是否为真。如果传入一个字符串则先执行 eval(),然后检查 eval() 的结果是否为真。
在 PHP 7 之前,这种行为是阻止断言表达式求值的唯一方法。从 PHP 7 开始,可以在 ini 中设置 zend.assertions 的值,来避免对断言表达式求值。因此,不再需要支持隐式评估的字符串参数。
assert() 的这种行为使得很容易引入微妙的远程代码执行漏洞。
$errcontext 是使用 set_error_handler() 设置错误处理程序时的最后一个参数。此参数为包含错误生成处的所有局部变量的数组。
这个功能对于优化有影响,因为 $errcontext 可用于修改当前范围中的所有引用和变量。据我所知,这个功能几乎无用,这里的权衡是不值得的。如果人们希望在错误的时候检查变量状态,他们应该使用适当的调试器。
请注意,错误上下文仅包含错误发生处的局部变量。包含 $this 和函数参数的错误回溯,会通过 debug_backtrace() 保持可用。
更多更改和投票细节,请查看 RFC。
Night gathers, and now my watch begins.
Original url: Access
Created at: 2018-10-10 18:19:34
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论