flag -i = Case insensitive search
flag -n = print line number match was found on with the file found
flag -r = recursive from current location downwards
flag -E = Use extended regular expression rules
grep -irnE --include \*.php 'function ([a-zA-Z0-9_]*?)[ ]?\(.*?\$[a-zA-Z0-9_]*?=.*?(\$[a-zA-Z0-9_]*?)[\),]{1}[^\{]*?' > results.txt
5条答案
按热度按时间2admgd591#
这种风格的函数声明has been deprecated in PHP 8.0。编写这样的函数有never made sense,因为调用函数时需要指定所有参数(直到最后一个必需的参数)。使用来分析函数和方法也有caused confusion。
新的弃用只是确保函数签名遵循常识性假设,即必须出现的必需参数应始终在可选参数之前声明。
应该重写该函数以删除早期参数的默认值。由于不声明所有参数就无法调用该函数,因此这应该不会影响其功能。
bvjxkvbb2#
不带默认值的必需参数应放在第一位。
iyfjxgzm3#
如果有人想找出需要更新的函数,可以在linux中通过grep使用这个正则表达式,grep会将结果输出到results.txt文件中,它只会在.php文件中搜索。
我花了一段时间才让它工作,它可能需要更多的调整!
希望这对任何试图查找和纠正错误的人有帮助。
vx6bjr1n4#
“如果具有默认值的参数后跟必需参数,则默认值无效。"
从PHP 8.0.0开始不建议使用此问题,通常可以解决此问题
1.通过删除默认值
1.通过如上所述改变参数的位置
而不改变功能。
这个方法在我的情况下工作=)
我遇到了以下错误:
ErrorException必需参数$id跟在可选参数$getLink后面
以下代码正在生成此异常
为了解决此错误,我按照以下代码中的建议更改了参数的位置:
完成=)
w46czmvw5#
对我来说很有效的解决方案是交换参数的位置,确保没有参数出现在任何默认值设置为空的参数之后。