我正在编写一个工作代码,通过telnet与元素连接,从中获取一些配置选项。对于一个函数,我遇到了问题,因为它没有返回我期望的值。这是这个代码:
function checkLogin ($element, &$handle, $lastElement, $node=null, &$error=null) {
$ip = "127.0.0.1";
$port = "31";
include('query.php');
if($serverip[$element]!==$serverip[$lastElement]){
if($handle) {fclose($handle);}
$handle = fsockopen($ip, $port, $error, $errstr, 10);
}
if (!$handle) { $error="Can't connect to server: ".$ip; return false;}
else {
if($element!==$lastElement){
if(is_null($node)) {$loginElement=$element;}
else {$loginElement=$node;}
$out="req ne:name=".$loginElement;
$error=query($handle,$out);
if($error[0]!=0) {return false;}
echo "first'n";
}
echo "second'n";
}
echo "third'n";
return true;
}
如果一切都很好,函数返回 true,我可以看到: 第一 第二 第三
但是当错误 [0]==1 时,函数仍然返回 true,我可以看到这样的东西: 第二 第三
你知道可能是什么问题吗?
如果$element === $lastElement
,则从不调用 return false
语句。您的输出将是
second
third
在这种情况下。