PHP 已弃用:不推荐将 false 自动转换为数组

问题描述 投票:0回答:2

我不明白这有什么问题。

PHP 8.1 PHP 已弃用:不推荐将 false 自动转换为数组

        $request = parse_url( $_SERVER['REQUEST_URI'] );
        $request['path'] = ( ! empty( $request['path'] ) ) ? $request['path'] : '';
php php-8.1
2个回答
2
投票

解决了我自己的问题。

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

2
投票

这种模式很可能是一个错误:

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

PHP 现在对此发出警告:

已弃用:不推荐将 false 自动转换为数组

...并且该代码很可能在未来的 PHP 版本中完全停止工作。

在您的情况下,

false
来自parse_url():

对于严重格式错误的 URL,parse_url() 可能会返回 false。

检查

$_SERVER['REQUEST_URI']
以找出 PHP 无法将其解析为 URL 的原因。使用单步调试器,或者使用
var_dump($_SERVER['REQUEST_URI'])

另一方面,目标是什么并不完全清楚(至少在没有进一步背景的情况下)。

REQUEST_URI
最多有两个分量,
path
query
,并且只有
query
是可选的。代码片段实际上并没有做任何事情,除非您在命令行中运行脚本,在这种情况下,它将抛出 未定义的数组键“REQUEST_URI”警告。如果您在早期阶段覆盖
$_SERVER['REQUEST_URI']
,它只能做不同的事情。

© www.soinside.com 2019 - 2024. All rights reserved.