为了账号安全,请及时绑定邮箱和手机立即绑定

我不清楚如何使 PHP 类文件在 Laravel 上具有不同的输出?

我不清楚如何使 PHP 类文件在 Laravel 上具有不同的输出?

PHP
千巷猫影 2023-06-24 15:35:30
$taxonomies = $post->taxonomies()->get();但是当我使用“echo”语句时,它的结果是如下所示的字符串。echo $taxonomies[0];// {"term_taxonomy_id":317,"term_id":317,"taxonomy":"skill","description":"","parent":0,"count":1,"pivot":{"object_id":4886,"term_taxonomy_id":317},"term":{"term_id":317,"name":"Consulting","slug":"consulting","term_group":0}}但是当我使用“print_r”语句时,它的结果是如下所示的对象print_r($taxonomies[0]);Corcel\Model\Taxonomy Object(    [table:protected] => term_taxonomy    [primaryKey:protected] => term_taxonomy_id    [with:protected] => Array        (            [0] => term        )    [timestamps] =>     [postType:protected] =>     [connection:protected] => wordpress    [keyType:protected] => int    [incrementing] => 1    [withCount:protected] => Array        (        )    [perPage:protected] => 15    [exists] => 1....我不清楚它是如何工作的?
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

情况是echo将某个类的 object 转换为string。而你,作为开发者,可以使用魔法方法__toString来控制这个过程。

深入研究代码,您可以看到Corcel\Model\Taxonomy扩展了类,而类又扩展了lluminate\Database\Eloquent\Model。这个类中有一个__toString方法可以将你的对象转换为 json。

至于print_r- 该函数不会将对象转换为任何其他类型,只是输出可读的对象表示。


查看完整回答
反对 回复 2023-06-24
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

一种是 JSON 表示法,另一种是内存中实例的转储。

使用serialize()或 来json_enode()获得不同的输出。


查看完整回答
反对 回复 2023-06-24
  • 2 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信