繁体   English   中英

如何访问 PHP 对象的单个值?

[英]How to access PHP object's individual value?

我正在为电子邮件猎人 API 使用以下包装器...

require_once '/home/mysite/public_html/path/to/hunterio/vendor/autoload.php';

use Hiraya\Hunter;

$hunter = new Hunter('MY_API_KEY');

他们的关键方法是...

$hunter->findEmailByCompany('microsoft.com', 'Bill Gates');

但我不明白如何访问和输出结果 - 特别是“电子邮件”字段。

我知道以前有人问过类似的问题,我已经检查了许多答案,但找不到解决方案。 $hunter是一个对象,对吧? 他们对我来说很新。

这是我尝试过的一些事情......

1.

echo $hunter->findEmailByCompany('microsoft.com', 'Bill Gates');

输出...

" {"data"}: { "first_name": "Bill", "last_name": "Gates", "email": "bill.gates@microsoft.com", "score": 91, "domain": "microsoft ....

2.

 var_dump($hunter);

输出...

object(Hiraya\Hunter)#25263 5) {["apiKey":protected] => string(40) ...

3.

$myobject = $hunter->findEmailByCompany('microsoft.com', 'Bill Gates');
print_r($myobject["data"]);

输出...

Warning: Illegal string offset 'data' in...

上面的数字 1. 最接近,因为它表明属性“电子邮件”可用,似乎在“数据”中。 我需要访问“电子邮件”。

编辑

我的轻微误解......图书馆返回JSON。 因此,正如答案所指出的,我使用 json_decode 访问一个元素。

问题是, findEmailByCompany()返回什么数据类型?

如果它是一个 JSON 编码为 #1 的__toString()不清楚, __toString()可以以任何方式实现),那么您的电子邮件位于:

$hunter->findEmailByCompany('microsoft.com', 'Bill Gates')->email

或者

$hunter->findEmailByCompany('microsoft.com', 'Bill Gates')->data->email

或者

$hunter->findEmailByCompany('microsoft.com', 'Bill Gates')->data['email']

但是,也有可能findEmailByCompany()返回的对象具有非公开的电子邮件字段。 然后你会有一些 getter 方法,例如get('email')

编辑:该方法也可能只返回一个 JSON 字符串。 在这种情况下,它类似于:

json_decode($hunter->findEmailByCompany('microsoft.com', 'Bill Gates'))->data->email

由于findEmailByCompany()返回 JSON 字符串(如源代码中所述),您需要使用:

$json = $hunter->findEmailByCompany('microsoft.com', 'Bill Gates');
$result = json_decode($json);
echo $result->data->email;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM