获取错误PHP警告:非法字符串偏移'错误'在第93行的../roundcube/plugins/vtrc/vtwsclib/Vtiger/WSClient.php
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)
当您尝试获取带有字符串偏移量的关联数组的索引时,请添加"
或'
作为偏移量。将您的功能更改为
function hasError($result) {
if(isset($result["success"]) && $result["success"] === true) {
$this->_lasterror = false;
return false;
}
$this->_lasterror = $result["error"];
return true;
答案 1 :(得分:0)
您有两个重要错误!!
首先:您需要使用'或者"获取数组的值
$value = $array["KEY_HERE"];
Same as
$value = $array['KEY_HERE'];
PHP很友好,引号=)
第二:您需要检查"错误"密钥存在于Array $结果中,如" success"
function hasError($result) {
if(isset($result["success"]) && $result["success"] === true) {
... CODE ...
}
if(isset($result["error"])) {
... CODE ...
}
... REST OF METHOD ...
}
这是什么意思"非法字符串偏移'错误' 确切地说不存在索引'错误' for Array $ result。请小心,因为脚本试图访问未为此数组声明(初始化 - 设置)的内存块。这很危险!!
$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 **/