我正在編寫一個工作代碼,通過telnet連接元素以從中獲取一些配置選項。對於一個函數,我有問題,因爲它沒有返回我期待的值。下面是該代碼:PHP函數返回不起作用
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;
}
如果一切是好函數返回真,我可以看到: 第一 第二 第三
但是,當錯誤[0] == 1,則函數仍然返回true我可以看到類似這樣的內容: 秒 第三個
你知道什麼是問題嗎?
'$ error'應該是一個字符串還是一個數組?你在這個功能中使用它。 – Barmar
我用它作爲數組。但是在這種情況下,這並不重要,因爲它幾乎總是「真實的」。 – user2922749
如果它是一個數組,爲什麼你有'$ error =「無法連接到服務器:」。$ ip;'? – Barmar