2015-10-14 247 views
1

得到這個錯誤:「get_object_vars()預計參數1是對象,指定字符串」

login: demo 
password: **** 
[AJAX] Invalid JSON - Server reponse is: 
<br /> 
<b>Warning</b>: get_object_vars() expects parameter 1 to be object, string given in <b>C:\wamp\www\examples\json-rpc\json-rpc.php</b> on line <b>75</b><br /> 
<br /> 
<b>Warning</b>: get_object_vars() expects parameter 1 to be object, string given in <b>C:\wamp\www\examples\json-rpc\json-rpc.php</b> on line <b>75</b><br /> 
<br /> 
<b>Warning</b>: get_object_vars() expects parameter 1 to be object, string given in <b>C:\wamp\www\examples\json-rpc\json-rpc.php</b> on line <b>75</b><br /> 
{"jsonrpc":"2.0","result":null,"id":"2","error":{"code":-32600,"message":"Invalid Request: no method"}} 

在它指的是它的實際文件說

// return object field if exist otherwise return default value 
function get_field($object, $field, $default) { 
    $array = get_object_vars($object); 
    if (isset($array[$field])) { 
    return $array[$field]; 
    } else { 
    return $default; 
    } 
} 

可我只是將其更改爲「get_string_vars」?還是必須保留一個對象來處理密碼?我有點小事,只是在一個項目上工作,謝謝。

+0

你是如何調用'get_field'?也許你需要首先在某處調用'json_decode()'? –

+0

嗨,整個代碼在這裏:http://pastebin.com/1VUWUDFa - 我不是很擅長php或jquery。然而,我認爲這應該與輸入字符串時應該是一個對象,也許 – X45Gunnerzzz

+0

'get_object_vars()'將對象轉換爲數組。 – aldrin27

回答

0

您需要通過get_field()對象不是一個字符串。

你可能需要做一些事情,如:

$object = json_decode($input); 
$result = get_field($object, $field, $default); 
+0

謝謝,那麼我將如何將這一點貫徹到我向您展示的樣本中。謝謝。 – X45Gunnerzzz

+0

@ X45Gunnerzzz:看起來你已經是:'$ json = json_decode($ input);'。只需將'$ json'而不是'$ input'傳遞給'get_field()'。 –

+0

Hamzat我還是很困惑。所以你可以把它放在我必須做的感謝之處。所以你的意思是我把$ result = get_field ...放到了get_field的地方?函數get_field($ object,$ field,$ default){ $ array = get_object_vars($ object);如果(isset($ array [$ field])){ return $ array [$ field]; } else { return $ default; } } – X45Gunnerzzz

相關問題