2016-11-23 102 views
0

我試圖使用Wordnik PHP API,並遇到一些麻煩。我試圖使用getDefinitions方法,但它返回一個錯誤:Notice: Trying to get property of non-object in C:\xampp\htdocs\index.php on line 18Wordnik「嘗試獲取非對象的屬性」錯誤嘗試getDefinitions時

這裏是下面的代碼:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
     <form method="post"> 
      <input type="text" placeholder="First Word" name="word1"> 
      <input type="submit" placeholder="Compare"> 
     </form> 
     <?php 
      require('./wordnik/Swagger.php'); 
      $APIKey = '342eac9900e703079b0050d5f7008eab962195189e75bfbcb'; 
      $client = new APIClient($APIKey, 'http://api.wordnik.com/v4'); 

      $word1 = $_POST['word1']; 
      $wordApi = new WordApi($client); 
      $word1 = $wordApi->getDefinitions($word1, null, null); 
      print $word1->text; 
     ?> 
    </body> 
</html> 
+0

你也可以看看:http://stackoverflow.com/a/12769983/2377164 – olibiaz

回答

1

我覺得您的通知(不是一個真正的在世界上的PHP錯誤)不來自$word1 = $wordApi->getDefinitions($word1, null, null);print $word1->text;這可能嗎?

如果檢查WorldApi類:

https://github.com/wordnik/wordnik-php/blob/master/wordnik/WordApi.php#L182 https://github.com/wordnik/wordnik-php/blob/master/wordnik/WordApi.php#L138

你可以看到,getDefinitions(...)返回Definition或空數組。

有一件事是可以肯定的,你不能從$word1得到->text財產,但如果返回有效的話,你可以從這些指數之一得到。嘗試$word1[0]->text

無論如何,您還應該處理getDefinitions(...)的返回返回空數組或空值的情況。

+0

謝謝!我是PHP新手,對我的無能感到抱歉。我會在今天晚些時候嘗試。 – Njinx

0

此示例代碼可以幫助你:

apiUrl = 'http://api.wordnik.com/v4' 
apiKey = 'YOURKEYHERE' 
client = swagger.ApiClient(apiKey, apiUrl) 
wordApi = WordApi.WordApi(client) 
res = wordApi.getWord('cat') 
res2 = wordApi.getDefinitions('cat') 
assert res, 'null getWord result' 
assert res.word == 'cat', 'word should be "cat"' 
print res.word 
print dir(res2[0]) 
print res2[0].partOfSpeech 
相關問題