__toString()方法
2011-06-21 15:56
162 查看
我们前面说过在类里面声明“--”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动调用的, 前面我们讲过对象引用是一个指针,比如说:“$p=new
Person()“中,$p就是一个引用,我们不能使用echo 直接输出$p, 这样会输出”Catchable fatal error: Object
of class Person could not be converted to string“这样的错误,如果你在类里面定义了“__toString()”方法,在直接输出对象引用的时候,就不会产生错误,而是自动调用了”__toString()”方法, 输出“__toString()”方法中返回的字符,所以“__toString()”方法一定要有个返回值(return 语句).
<?php
// Declare a simple classCheap Reading glasses
class TestClass
{
public $foo;
public function __construct($foo) {
$this->foo = $foo;
}
//定义一个__toString方法,返加一个成员属性$foo
public function __toString() {
return $this->foo;
}
}
$class = new TestClass('Hello');
//直接输出对象Cheap Sunglasses
echo $class;
?>
上例输出:Hello
Person()“中,$p就是一个引用,我们不能使用echo 直接输出$p, 这样会输出”Catchable fatal error: Object
of class Person could not be converted to string“这样的错误,如果你在类里面定义了“__toString()”方法,在直接输出对象引用的时候,就不会产生错误,而是自动调用了”__toString()”方法, 输出“__toString()”方法中返回的字符,所以“__toString()”方法一定要有个返回值(return 语句).
<?php
// Declare a simple classCheap Reading glasses
class TestClass
{
public $foo;
public function __construct($foo) {
$this->foo = $foo;
}
//定义一个__toString方法,返加一个成员属性$foo
public function __toString() {
return $this->foo;
}
}
$class = new TestClass('Hello');
//直接输出对象Cheap Sunglasses
echo $class;
?>
上例输出:Hello
相关文章推荐
- C#中DateTime.ToString()方法的细节
- __toString()方法
- 【Java】数组不能通过toString方法转为字符串
- Lesson_for_java_day10--访问权限、static、对象转型、equals方法、toString方法、主函数
- 5. 总是为自定义类重载 ToString 方法。
- Effective C# Item5:总是提供ToString()方法
- 输出一个对象,会默认执行toString()方法
- Java仿照JavaScript的JSON的stringify()方法重写toString()方法的启示
- 使用Object对象的toString()方法自定义判断数据类型方法
- Java 深究字符串String类(2)之重写toString()方法无意识递归
- 默认实现了equals,hashcode,tostring方法的pojo基类
- 重写toString()方法
- 采用重写tostring方法使ComboBox显示对象属性
- js中的tostring()方法
- Java 打印自定义类 实例 , 自动调用toString 方法的原因
- java中toString()方法
- 重载toString方法,返回对象的详细信息
- 利用反射重写tostring方法
- 一个通用的类的toString()方法
- 性能相差7千倍的ToString方法