7.7.6 魔术方法__toString()

7.7.6 魔术方法__toString()

类中通用的方法__toString( )

魔术方法“__toString()”是快速获取对象的字符串表示的最快捷方式。即当我们直接要输出一个对象时,如echo $a,print $a,那么会自动调用的此魔术方法。
注意:__toString()方法必须返回一个字串类型的值。

<?php
    //声明一个测试类,在类中声明一个成员属性和一个__toString()方法
    class TestClass {                   
        private $foo;       //在类中声明的一个成员方法
        public function __construct($foo) {        //通过构造方法传值为成员属性赋初值
            $this->foo = $foo;        //为成员属性赋值
        }
        public function __toString() {      //在类中定义一个__toString方法 
            return $this->foo;        //返回一个成员属性$foo的值
        }
    }
    $obj = new TestClass('Hello');          //创建一个对象并赋值给对象引用$obj
    echo $obj;           //直接输出对象引用则自动调用了对象中__toString()方法输出Hello

test.php

<?php
/*  
 *  魔术方法, 只有PHP语言中存在
 *
 *
 *   __construct()
 *
 *   __destruct()
 *
 *   __set()
 *
 *   __get()
 *
 *   __isset()
 *
 *   __unset()
 *
 *   1. 自动调用, 但不同的魔术方法,有自己的调时机
 *   2. 都是以"__"开始的方法
 *   3. 所有的魔术方法,方法名都是固定的
 *   4. 如果不写, 就不存在, 也就没有默认的功能
 *
 *  
 *
 *  __toString() 
 *
 *      1. 是在直接使用 echo print printf输出一个对象引用时,自动调用这个方法
 *      2. 将对象的基本信息放在__toString()方法内部, 形成自字符串返回。
 *      3. __toString()方法中, 不能有参数, 而且必须返回一个字符串
 */ 

    class Person {
        public $name;
        public $age;
        public $sex;    

        function __construct($name, $age, $sex) {
            $this->name = $name;
            $this->age = $age;
            $this->sex = $sex;
        }

        function say() {
            
        }

        function __toString() {
            return "aaaaaaaaaaaaaaaaaaa<br>";
        }
    }

    $p = new Person("张三", 10, "男");

    echo $p;

    print new Person("aaa", 10, "bb");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 3,187评论 3 49
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,155评论 4 97
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,547评论 0 17
  • 一、数组 1、数组定义 数组就是一个键值对组成的语言结构,键类似于酒店的房间号,值类似于酒店房间里存储的东西。 $...
    空谷悠阅读 814评论 4 11
  • 我很荣幸以职业导师的身份,受邀参加西北大学第三期面试“4S”店活动,这是西北大学就业办主办,针对在校大学生提供求职...
    哑哑妈阅读 387评论 0 0