如何解决从 PHP 7.4 升级到 8.0 后的 parse_str 语法错误
PHP 消息:PHP 致命错误:未捕获的 ArgumentCountError:parse_str() 需要 2 个参数,1 个给定
我相信 PHP 8 语法有一些变化,但我不确定。我以前用的是 PHP 7.4
有问题的行是:
$url_vars = parse_str($parse_url['query'] ?? 0);
有问题的脚本部分如下:
if ( $referrer !== FALSE && $referrer !== '' && stripos($referrer,'://') )
{
$parse_url = parse_url($referrer);
$domain = $parse_url['host'];
$query = $parse_url['query'] ?? 0;
$dotdomain = '.'.$domain;
if ( strlen($parse_url['query'] ?? 0) >= 1 )
{
$url_vars = parse_str($parse_url['query'] ?? 0);
if (FALSE === empty($url_vars['q']))
{
$utm_keyword = $url_vars['q'] ?? 0;
}
}
解决方法
从 PHP 8.0 开始,第二个参数 result 不再是可选的,而是必需的。
result 应该是您要将输出放入的变量。
您可以在 official parse_str documentation 上查看变更日志。
parse_str($parse_url['query'] ?? 0, $url_vars);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。