2017-10-14 63 views
0

得到一個錯誤PHP的警告:非法串在../roundcube/plugins/vtrc/vtwsclib/Vtiger/WSClient.php偏移「錯誤」上線93PHP的警告:非法串偏移「錯誤」 roundcube插件

在PHP文件(行93兩端)

function hasError($result) { 
     if(isset($result[success]) && $result[success] === true) { 
      $this->_lasterror = false; 
      return false; 
     } 
     $this->_lasterror = $result[error]; 
     return true; 
+0

我猜你需要添加引號,所以數組訪問會是什麼樣'$結果[「錯誤」]'或'$結果[「成功」]' –

+0

如果'error'是你需要一個字符串使用引號或雙引號 – frz3993

回答

0

您有兩個重要錯誤!

首先的:你需要使用「或」獲取數組

$value = $array["KEY_HERE"]; 

Same as 
$value = $array['KEY_HERE']; 

PHP是用引號友好的價值=)


:您需要檢查「錯誤」鍵是否存在Array $結果中,如「成功」

function hasError($result) { 
    if(isset($result["success"]) && $result["success"] === true) { 
     ... CODE ... 
    } 
    if(isset($result["error"])) { 
     ... CODE ... 
    } 
    ... REST OF METHOD ... 
} 

這是什麼意思「非法字符串偏移'錯誤'?確切地說,不存在數組$結果的索引'錯誤'。請小心,因爲腳本試圖訪問未聲明(初始化 - 設置)的數組。這很危險 !!

$myArray = array();    /** Empty array **/ 
$myArray["error"] = "";   /** set index "error" with "" value **/ 

echo isset($myArray["error"]);  /** echo TRUE **/ 
echo isset($myArray["success"]); /** echo FALSE **/ 
echo $myArray["success"];   /** throw exception "Illegal string offset 'success' ..." because not set in Array **/ 
0
當你試圖讓用繩子關聯數組的索引

功能失調添加"'的偏移。將您的功能更改爲

function hasError($result) { 
     if(isset($result["success"]) && $result["success"] === true) { 
      $this->_lasterror = false; 
      return false; 
     } 
     $this->_lasterror = $result["error"]; 
     return true; 
相關問題