首页 > 试题广场 >

在PHP面向对象中有一个通用方法__toString()方法

[单选题]
在PHP面向对象中有一个通用方法__toString()方法,下面关于此方法描述或定义错误的是( ):
  • 此方法是在直接输出对象引用时自动调用的方法。
  • 如果对象中没有定义此方法时,直接使用echo输出此对象,会报如下错误:Catchable fatal error: Object of class A could not be converted to string.
  • 此方法中一定要有一个字符串作为返回值。
  • 此方法用于输出信息的,如下所示:public function __toString( ){ echo "This is Class ....";}
__tostring()
必须 return 字符串, 否则致命错误。
不能抛出异常,否则致命错误。

发表于 2018-03-06 14:46:19 回复(0)
选 D 应该是return
发表于 2015-03-20 00:19:16 回复(3)
链接:https://www.nowcoder.com/questionTerminal/fb915646bed2473ca496fb0b6441333c
来源:牛客网
如果类定义了__toString方法,就能在测试时,echo打印对象体,对象就会自动调用它所属类定义的__toString方法,格式化输出这个对象所包含的数据。如果没有这个方法,那么echo一个对象将报错,例如“Catchable fatal error: Object of class A could not be converted to string.”
发表于 2018-03-06 17:03:36 回复(0)
__toString()  是魔术方法的一种,具体用途是当一个对象被当作字符串对待的时候,会触发这个魔术方法 以下说明摘自PHP官方手册 public string __toString ( void ) __toString() 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误。 Warning 不能在 __toString() 方法中抛出异常。这么做会导致致命错误。
发表于 2020-11-25 00:37:57 回复(0)

__toString()  是魔术方法的一种,具体用途是当一个对象被当作字符串对待的时候,会触发这个魔术方法 以下说明摘自PHP官方手册

public string __toString ( void )

__toString() 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误。

Warning

不能在 __toString() 方法中抛出异常。这么做会导致致命错误。

Example #2 简单示例

复制代码
<?php // Declare a simple class class TestClass
{ public $foo; public function __construct($foo) 
    { $this->foo = $foo;
    } public function __toString() { return $this->foo;
    }
} $class = new TestClass('Hello'); echo $class; ?>
复制代码

 

以上例程会输出:

Hello

需要指出的是在 PHP 5.2.0 之前,__toString() 方法只有在直接使用于 echo 或 print 时才能生效。PHP 5.2.0 之后,则可以在任何字符串环境生效(例如通过 printf(),使用 %s 修饰符),但不能用于非字符串环境(如使用 %d 修饰符)。自 PHP 5.2.0 起,如果将一个未定义 __toString() 方法的对象转换为字符串,会产生 E_RECOVERABLE_ERROR 级别的错误。

发表于 2020-01-13 10:59:13 回复(0)
d return考眼神😯
发表于 2018-03-12 07:38:14 回复(0)
D,一定要有返回值,且返回值必须为字符串
发表于 2017-04-21 07:45:10 回复(0)
D中应该是return返回字符串
发表于 2017-03-18 18:03:15 回复(0)
http://w3note.com/web/109.html
发表于 2015-12-01 15:16:02 回复(0)
A 没有__toString方法直接输出对象会报错
发表于 2015-04-10 21:01:59 回复(0)
选B
 
如果类定义了__toString方法,就能在测试时,echo打印对象体,对象就会自动调用它所属类定义的__toString方法,格式化输出这个对象所包含的数据。如果没有这个方法,那么echo一个对象将报错,例如“Catchable fatal error: Object of class A could not be converted to string.”
发表于 2015-03-15 14:45:21 回复(0)
D, 应该是 function __toString(){
                return "string value";
          }
发表于 2015-02-25 19:21:48 回复(0)