2016-11-23 76 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 
相关问题