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

我不清楚如何使PHP类文件在Laravel上具有不同的输出?,php,laravel,oop,Php,Laravel,Oop,但是当我使用'echo'语句时,它的结果是如下所示的字符串 $taxonomies = $post->taxonomies()->get(); 但当我使用“print_r”语句时,它的结果如下所示 echo $taxonomies[0]; // {"term_taxonomy_id":317,"term_id":317,"taxonomy":"skill","description"

但是当我使用'echo'语句时,它的结果是如下所示的字符串

$taxonomies = $post->taxonomies()->get();
但当我使用“print_r”语句时,它的结果如下所示

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}}

我不清楚它是如何工作的?

这种情况是
echo
将某个类的对象转换为字符串。作为一名开发人员,您可以使用

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


至于
print\r
-此函数不将对象转换为任何其他类型,只输出可读的对象表示。

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


对不同的输出使用或
json\u enode()

这是一个模型,当您尝试将其转换为字符串时,它会被序列化为json,文档中有一整节是关于序列化雄辩的模型的
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
....