2017-10-14 6 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

に変更してください。重要なエラーが2つあります。すべての

まず:あなたは

$value = $array["KEY_HERE"]; 

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

PHPは引用符で友好的である配列の値を取得するには、「使用OR 'する必要があります=)


第二:あなたは、 「エラー」キーが配列$ resultに「成功」​​のように存在するかどうかを確認する必要があります

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

「不正な文字列オフセット 'エラー」とはどういう意味ですか?まったく存在しません。Array $ resultのインデックス 'error'です。スクリプトは、この配列に対して宣言されていない(初期化された)メモリ部分にアクセスしようとしていたので注意してください。それは危険だ !!

$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; 
関連する問題