我相对较新的PHP,但已经意识到它是一个强大的工具。 请原谅我的无知。
我想创建一组具有默认功能的对象。
因此,不是在类中调用函数,而是可以输出类/对象变量,它可以执行默认函数,即toString()方法。
问题: 有没有办法在类中定义默认函数?
示例
class String {
public function __construct() { }
//This I want to be the default function
public function toString() { }
}
用法
$str = new String(...);
print($str); //executes toString()
答案 0 :(得分:10)
没有默认函数这样的东西,但是在某些情况下可以自动触发类的魔术方法。在您的情况下,您正在寻找__toString()
http://php.net/manual/en/language.oop5.magic.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;
?>
答案 1 :(得分:1)
将toString函数代码放在__construct中,或者指向toString。
class String {
public function __construct( $str ) { return $this->toString( $str ); }
//This I want to be the default function
public function toString( $str ) { return (str)$str; }
}
print new String('test');
答案 2 :(得分:1)
__toString()
,即echo $ str。
__call()
是任何类的默认方法。