php -- 魔术方法 之 对象输出 : __toString()

对象输出:__toString()

当一个对象被当做字符串进行输出时(echo,print),会调用__toString()方法

<?php

    //输出对象
    class Person{
        //属性
        public $name;
        private $age;

        //方法
        public function __construct($name,$age){
            $this->name = $name;
            $this->age  = $age;
        }

        public function setAge($age){
            $this->age = $age;
        }

        public function getAge(){
            return $this->age;
        }

        //对象转字符串方法
        //要求只能返回字符串类型的数据
        public function __toString(){
            //将需要输出的对象的属性返回即可
            //组织语言进行输出(控制属性的输出)
            return (string)($this->name . ‘:‘ . $this->age);
        }
    }

    //实例化
    $person = new Person(‘周芷若‘,15);
    //var_dump($person);

    //echo $person;        //对象不能被当做字符串输出

    //需求:echo 对象,输出对象里面的所有属性(所有的属性连接成一个字符串)
    echo $person;
时间: 2024-11-03 02:16:48

php -- 魔术方法 之 对象输出 : __toString()的相关文章

php -- 魔术方法 之 对象克隆 : __clone()

产生对象的方法: 1.从类产生对象.new,通过new去堆区开辟一块内存空间 2.从对象产生对象.clone,通过关键字clone,将一个对象完整的复制一份,新开辟一块内存空间,将复制的结果存放到该内存里面 语法:新对象(变量) = clone 老对象(变量) 对象克隆:__clone() 当一个对象被clone的时候,被克隆的对象会自动调用__clone()方法,克隆方法不走构造方法 <?php //对象克隆 class Person{ //属性 public $name; private $

PHP面向对象常见的关键字和魔术方法

在PHP5的面向对象程序设计中提供了一些常见的关键字,用来修饰类.成员属性或成员方法,使他们具有特定的功能,例如final.static.const等关键字.还有一些比较实用的魔术方法,用来提高类或对象的应用能力,例如__call().__toString().__autoload等. ①final关键字的应用 final关键字的作用如下:a.实用final标识的类,不能被继承.b.在类中使用final标识的成员方法,在子类中不能被覆盖. 在下面的例子中声明一个MyClass类,并使用final

PHP常用魔术方法(__set、__get魔术方法:)

__set.__get魔术方法: //文件名:Object.php <?phpnamespace IMooc;class Object{ protected $array = array(); function __set($name, $value)//set魔术方法 { var_dump(__METHOD__);//输出当前方法 $this->array[$name]=$value;//$name=title,$value="哎哟喂" } function __get(

PHP 对象 魔术方法

<?php header('content-type:text/html;charset=utf-8'); /*  * __construct()构造方法  * 在对象初始化时自动调用  * __destruct()析构方法  * 在对象释放资源时自动调用  * __get()取值  * 在取私有属性值时自动调用  * __set()设置值  * 在设置私有属性值自动调用  * __isset()判断值  * 在使用isset()判断私有属性是否存在时自动调用  * __unset()释放值  

魔术方法__clone(), __toString(), __call(), __autoload(), __sleep()和__wakeup()详解

一.魔术方法__clone() <?php class demo{ public $name; public $age; public function __construct($name,$age){ $this -> name = $name; $this -> age = $age; } public function say(){ echo "say".$this->name; } //在克隆对象时自动调用 //作用:可以对新对象的成员属性进行赋值 pu

PHP中的魔术方法:__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload

1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的: __get( $property ) 当调用一个未定义的属性时访问此方法: __set( $property, $value ) 给一个未定义的属性赋值时调用: 这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性). 2.__isset.__unset __isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法: _

PHP中的魔术方法:__construct, __destruct , __call,__get, __set, __isset, __unset , __toString, __set,__clone and __autoload

1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的: __get( $property ) 当调用一个未定义的属性时访问此方法: __set( $property, $value ) 给一个未定义的属性赋值时调用: 这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性). 2.__isset.__unset __isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法: _

PHP 魔术方法 __clone __toString(五)

__clone() - 当对象克隆的时候自动加载此方法 __toString() - 当对象需要echo打印输出的时候自动加载此方法 __clone() <?php class example{ public static $pa; public $pb; public function __construct(){ $this->pb = ++self::$pa; } public function __clone(){ $this->pb = 'no zuo no die'; } }

phpz中的魔术方法__call、__set、__get、__sleep、__invoke、__autoload、__construct、__destruct、__clone、__tostring、__callstatic

PHP5.3新增了一个叫做__invoke的魔术方法,这样在创建实例后,可以直接调用对象. class testClass { public function __invoke { print “hello world”; } } $n = new testClass; $n(); 执行结果为: hello world. 官方示例 class CallableClass { public function __invoke($x) { var_dump($x); } } $obj = new C