PHP已弃用:不建议使用false到数组的自动转换

cyej8jka  于 2023-01-29  发布在  PHP
关注(0)|答案(2)|浏览(535)

我想不出这有什么问题。
PHP 8.1 PHP已弃用:不建议使用false到数组的自动转换

$request = parse_url( $_SERVER['REQUEST_URI'] );
        $request['path'] = ( ! empty( $request['path'] ) ) ? $request['path'] : '';
velaa5lx

velaa5lx1#

此模式很可能是一个错误:

$foo = false;
$foo['name'] = 'Jimmy';

所以PHP现在会发出警告:
Deprecated:不推荐将false自动转换为数组
...并且很可能在未来的PHP版本中该代码将完全停止工作。
在您的示例中,false来自parse_url()
对于格式严重错误的URL,parse_url()可能返回false。
检查$_SERVER['REQUEST_URI']以找出PHP无法将其解析为URL的原因。或者使用var_dump($_SERVER['REQUEST_URI'])的步骤调试器。
另一方面,我们还不完全清楚(至少没有进一步的上下文)目标是什么。REQUEST_URI将有两个最多有两个组件,pathquery,只有query是可选的。代码片段实际上没有做任何事情,除非您在命令行中运行脚本,在这种情况下,它将抛出 Undefined array key“REQUEST_URI”警告。只有在早期阶段覆盖$_SERVER['REQUEST_URI']时,它才能做一些不同的事情。

w6lpcovy

w6lpcovy2#

修正了我自己的问题。

$request = parse_url( rawurldecode( $_SERVER['REQUEST_URI'] ) );

相关问题