php怎么输出对象里的一个值?

PHP执行后返回如下:
Mailgun\Model\Message\SendResponse Object ( [id:Mailgun\Model\Message\SendResponse:private] => <[email protected]> [message:Mailgun\Model\Message\SendResponse:private] => Queued. Thank you. )

请教大神怎么把id:[email protected]和message:Queued. Thank you. 输出出来

第1个回答  2021-03-27

要将字符串中特定子字符串输出,需要用到正则匹配。

按照你的要求,匹配规则如下:

    匹配 [email protected]

    正则表达式/\<.*?\>/g

2. 匹配 message:Queued. Thank you.

    正则表达式:/\> Q.*\./g

两者匹配结果如下图:

图1

图2

匹配的结果,然后用 php的 substr函数截取出来目标字符串就行了,正则匹配用 preg_match函数

追问

我是小白,这个代码不知道咋写啊

追答

具体代码可参考下图:

如果觉得有用请采纳,并点个关注吧

追问

非常感谢你,
很不幸,我尝试后出错了。
因为下面这些是对象,不是字符串。不知道怎么样才能获取里面的值。
Mailgun\Model\Message\SendResponse Object ( [id:Mailgun\Model\Message\SendResponse:private] => [message:Mailgun\Model\Message\SendResponse:private] => Queued. Thank you. )

追答

如果是对象的话,用 -> 方式去获取对应的值

比如 对象结果变量是 $result,则可以用 $result->id和 $result->message去获取,可以试试

追问

$result = $mgClient->messages()->send($domain, $params);
执行后返回上面的对象。
我试了 echo $result->id; 获取不到

追答

可以把对象先转为数组,再获取试试,用json_decode($result)或者get_object_vars($result)试试看呢