如何重写这段php脚本,使其不再在"if"语句中使用不推荐使用的函数"each"?
if (list($_basic_auth_realm, $_basic_auth_header) = each($_auth_creds))
{
...
}
许多thx在adv.为您输入!
V。
[编辑]。这个if语句不在循环中。它是一个更大区块的一部分:
if (!empty($_basic_auth_header))
{
....
}
else if (!empty($_basic_auth_realm) && isset($_auth_creds[$_basic_auth_realm]))
{
....
}
else if (list($_basic_auth_realm, $_basic_auth_header) = each($_auth_creds))
{
....
}
$_basic_auth_realm、$_basic_auth_header是字符串$_auth_creds是一个数组
我真的不明白这个"如果"语句是如何工作的。我只尝试更新脚本,该脚本在执行时会返回警告。它被用作我的NAS上的php代理,正如Abdullah Arif所写:https://github.com/emersion/phproxy
使用您自己的变量来跟踪数组中的当前索引,而不是取决于数组的内部状态。
$auth_creds_index = 0;
...
else if (list($_basic_auth_realm, $_basic_auth_header) = $_auth_creds[$auth_creds_index++])
当前使用each($_auth_creds)
的每个地方都应该使用$_auth_creds[$auth_creds_index++]
,它们将获得数组的连续元素。
如果使用新数组重新分配变量,则需要将变量重置回0
。
您还可以为数组定义一个类包装器来自动执行所有这些操作。