未设置作用域变量的PHP


PHP for scope variable not set

循环中的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

您在循环外声明$proxy_asdfzxcv=0,所以这就是问题的原因。

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();
}

您可以简单地尝试全局$proxy_asdfzxcv;在线下之前$proxy_list_proxy=$proxy_listsdf[$no_proxy];