0

我收到了这个错误:Call-time pass-by-reference has been deprecated; 如果您想通过引用传递它,请修改 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'];

}

提前感谢

韦恩

4

2 回答 2

1

尝试不使用&符号:

ip_valid ( $_SERVER [ $c ] )

与您强制by-reference一样。

ip_first虽然,很明显,您在传递同一件事时不会为调用执行此操作,所以我想知道是什么让您认为它首先是正确的,以及为什么您在第二个实例中做了不同的事情。

于 2013-04-02T12:49:47.087 回答
0

只需&ip_valid ( &$_SERVER [ $c ] ).

于 2013-04-02T12:49:55.020 回答