未设置范围变量的PHP

时间:2014-04-26 11:33:39

标签: php loops scope

我在循环中遇到set变量的问题 这是我的代码

$proxy_asdfzxcv=0;

for($no_proxy_list=0;$no_proxy_list < count($proxy_listasdf) && $proxy_asdfzxcv==0; $no_proxy_list++)
{
    $proxy_list_proxy=$proxy_listasdf[$no_proxy_list];
    ///restor backkup
    $host=$host_backup;
    $url=$url_backup;
    $scheme=$scheme_backup;
    $http_auth=$http_auth_backup;
    $proxyauth=$proxyauth_backup;
    $requestp=$request_backu;
    //$hosts=$hosts_backup;
    ///
    $proxy=$proxy_list_proxy;
    echo('proxy : '.$proxy);
    if ($proxy) {
        list ( $proxyHost, $proxyPort ) = explode ( ":", $proxy );
        $host = $host . ($port != 80 && $port != 443 ? ":" . $port : "");
        $url = $scheme . $host . $url;
    }
    $errno = 0;
    $errstr = "";
    $hosts = ($proxyHost ? $scheme . $proxyHost : $scheme . $host) . ':' . ($proxyPort ? $proxyPort : $port);
    $fp = @stream_socket_client ( $hosts, $errno, $errstr, 120, STREAM_CLIENT_CONNECT );

    if (! $fp) {
        echo('----- proxy is not ok!!!');
        $dis_host = $proxyHost ? $proxyHost : $host;
        $dis_port = $proxyPort ? $proxyPort : $port;
        ///error
    }
    else
    {
        echo('<br>----- proxy is ok!!!');
        $proxy_asdfzxcv=1;
        echo($proxy_asdfzxcv);
    }
}

if(! $proxy_asdfzxcv)
{
    echo('<br>-----asdf proxy is not ok!!!'.$proxy_asdfzxcv);
    html_error ( sprintf ( lang ( 88 ) ));
    exit();
}

我不知道为什么$ proxy_asdfzxcv在最后一行是0 ...

这是我的输出......

----- proxy is ok!!!1
-----asdf proxy is not ok!!!0

2 个答案:

答案 0 :(得分:0)

你声明$ proxy_asdfzxcv = 0的循环,这就是问题的原因。

检查Manual的PHP变量范围

这里将获得$ proxy_asdfzxcv = 0和!$ proxy_asdfzxcv = 1

if(! $proxy_asdfzxcv)
{
    echo('<br>-----asdf proxy is not ok!!!'.$proxy_asdfzxcv);
    html_error ( sprintf ( lang ( 88 ) ));
    exit();
}

答案 1 :(得分:0)

你可以试试 global $ proxy_asdfzxcv; 在下面之前 $ proxy_list_proxy = $ proxy_listasdf [$ no_proxy_list];