我在循环中遇到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
答案 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];