PHP类-返回对象,但返回回显字符串
我有一个classPHP类-返回对象,但返回回显字符串,php,class,Php,Class,我有一个classCalculatePrice。运行此代码: $calc = new CalculatePrice( 10, 20 ); print_r ( $calc->do() ); do()方法返回另一个名为PriceObj的类。如果我运行代码echo$calc->do(),那么我会得到一个错误:类PriceObj的对象无法转换为字符串 我的问题是:我如何仍然可以从do()方法返回一个对象,但在对其运行回显时,它返回一个字符串或更简单的字符串;对还是错?这可能吗?您只能回显字符串。
CalculatePrice
。运行此代码:
$calc = new CalculatePrice( 10, 20 );
print_r ( $calc->do() );
do()
方法返回另一个名为PriceObj
的类。如果我运行代码echo$calc->do()
,那么我会得到一个错误:类PriceObj的对象无法转换为字符串
我的问题是:我如何仍然可以从
do()
方法返回一个对象,但在对其运行回显时,它返回一个字符串或更简单的字符串;对还是错?这可能吗?您只能回显字符串。但幸运的是,您可以将对象转换为字符串。这可以通过提供\uuu toString()
函数自动完成
这是一个神奇的方法,它可以实现您想要的功能:从对象中生成字符串。见:
最基本的是,你是唯一知道如何从对象生成字符串的人(例如,显示其中的全部或部分变量),因此你需要自己实现如何生成字符串。你只能回显字符串。但幸运的是,您可以将对象转换为字符串。这可以通过提供
\uuu toString()
函数自动完成
这是一个神奇的方法,它可以实现您想要的功能:从对象中生成字符串。见:
最基本的是,你是唯一知道如何从对象生成字符串的人(例如,显示内部的全部或部分变量),因此你需要自己实现如何生成字符串。在你的
PriceObj
上实现神奇的方法\u-toString()
因此:
请参见在您的
PriceObj
上实现神奇方法\uu toString()
因此:
请参见使用()-方法将对象转换为字符串时可能出现的情况:
当使用()-方法将对象转换为字符串时,这是可能的:
您可以发布代码吗?只需编写
return$calc->do()
并在代码中回显所需的属性或调用其函数之一(该函数将回显所需内容),即可发布代码。只需编写return$calc->do()
并在代码中回显所需的属性或调用其函数之一(那一个将echo
what you want)太棒了。我不知道这个神奇的方法-非常感谢。太棒了。我不知道这个神奇的方法-非常感谢。我现在已经实现了这个,它可以工作了。非常感谢!我现在已经实现了这个,它可以工作了。非常感谢!
public function __toString()
{
echo $this->result; // The calculated price
}
class A {
private $val;
public function __construct($myVal) {
$this->val = $myVal;
}
public function __toString() {
return "I hold ".$this->val;
}
}
$obj = new A(4);
echo $obj; // will print 'I hold 4';