Php IP不推荐使用按引用传递呼叫时间

Php IP不推荐使用按引用传递呼叫时间,php,Php,我得到这个错误: 不推荐使用按引用传递调用时间;如果要通过引用传递,请修改ip_valid()的声明 在这些代码行的某个地方。问题是我在PHP方面并没有那个么强,并没有弄清楚需要修改什么来修复它 任何建议都将不胜感激 function getIP () { $check = array( 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_FORW

我得到这个错误: 不推荐使用按引用传递调用时间;如果要通过引用传递,请修改ip_valid()的声明

在这些代码行的某个地方。问题是我在PHP方面并没有那个么强,并没有弄清楚需要修改什么来修复它

任何建议都将不胜感激

function getIP () 
{
    $check = array(
            'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR',
            'HTTP_FORWARDED', 'HTTP_VIA', 'HTTP_X_COMING_FROM', 'HTTP_COMING_FROM',
            'HTTP_CLIENT_IP'
            );

    foreach ( $check as $c ) {
        if ( ip_valid ( &$_SERVER [ $c ] ) ) {
            return ip_first ( $_SERVER [ $c ] );
        }
    }

    return $_SERVER['REMOTE_ADDR'];
}

提前付款


韦恩

尝试不使用符号:

ip_valid ( $_SERVER [ $c ] )
就像你强迫的那样


虽然,很明显,在传递同一个东西时,你没有先调用
ip\u
,所以我想知道是什么让你认为它是正确的,为什么你在第二个例子中做得不同

只需从
ip\u有效(&$\u服务器[$c])
中删除
&
,此处:
if(ip\u有效(&$\u服务器[$c])){
我看到的答案是只删除符号,它当然会通过值传递。人们可能会认为,它应该通过引用传递是有原因的,没有说明
ip_valid
的声明也可以更改为
ip_valid(&$ip_to_check)
成功了..多亏了你们两个..成功了..多亏了你们两个。。