问答 / 115 / 26 / 创建于 1周前 / 更新于 1周前
变量严格取值, php8还增加了警告, 可旧项目代码, 写了无数的 $json[‘age’]这可如何兼容升级任务?
加isset工作量巨大.
这种需求清晰的很好修改,使用 AI 分分钟帮你改好了。
之前关注过一个项目 github.com/rectorphp/rector ,但是没有实操经验,可以试试。
用$age = $json [‘age’]??"",后面直接加个
$json[‘ab2c’][‘abc’][‘sdfasfasd’] = $json[‘ab2c’][‘abc’][‘sdfasfasd’]??’test’;这样竟然行了,
屏蔽警告信息,或者注册自定义异常处理set_error_handler,然后监听异常是否是Undefined xxx,直接返回true,忽略警告
屏蔽警告是简单事儿, 但这类变量当参数时,fun($json[‘age’]) 或者是类参数时, 本质我们期待进入的是字符” “ 空, 现在却成了类型null. 全线报错啊..这种怎么兼容? 不可能重写所有函数方法吧?
$json['age']?? 18 取的时候给默认值, 得先考虑清除了 为什么会没有 是整个$json 为空 还是只是兜底。不行考虑对接dto
粗糙框架,凡是数组,不确定有没有的,一律使用自定义函数
laravel框架可以用Arr类库
if($tplcache[‘cache’]??’’) // 每一次使用变量都必加 ??’’ php在歪路走得越来越远!!!
他说走歪路 你at 我干嘛 @Imuyu
现在的问题来了, 写好的代码, 要不不兼容php8 要不不兼容php5, 这可真复杂了. 代码得写两份?
$str = ‘123’;$_GET[$str] = ‘test’;
这个时候的数组key是什么类型? 注意, 一直用的字符串.
我要举报该,理由是:
这种需求清晰的很好修改,使用 AI 分分钟帮你改好了。
之前关注过一个项目 github.com/rectorphp/rector ,但是没有实操经验,可以试试。
用$age = $json [‘age’]??"",后面直接加个
屏蔽警告信息,或者注册自定义异常处理set_error_handler,然后监听异常是否是Undefined xxx,直接返回true,忽略警告
屏蔽警告是简单事儿, 但这类变量当参数时,
fun($json[‘age’]) 或者是类参数时, 本质我们期待进入的是字符” “ 空, 现在却成了类型null. 全线报错啊..
这种怎么兼容? 不可能重写所有函数方法吧?
$json['age']?? 18 取的时候给默认值, 得先考虑清除了 为什么会没有 是整个$json 为空 还是只是兜底。不行考虑对接dto
粗糙框架,凡是数组,不确定有没有的,一律使用自定义函数
laravel框架可以用Arr类库
if($tplcache[‘cache’]??’’)
// 每一次使用变量都必加 ??’’ php在歪路走得越来越远!!!
现在的问题来了, 写好的代码, 要不不兼容php8 要不不兼容php5, 这可真复杂了. 代码得写两份?
$str = ‘123’;
$_GET[$str] = ‘test’;
这个时候的数组key是什么类型? 注意, 一直用的字符串.