PHP类-返回对象,但返回回显字符串

PHP类-返回对象,但返回回显字符串,php,class,Php,Class,我有一个classCalculatePrice。运行此代码: $calc = new CalculatePrice( 10, 20 ); print_r ( $calc->do() ); do()方法返回另一个名为PriceObj的类。如果我运行代码echo$calc->do(),那么我会得到一个错误:类PriceObj的对象无法转换为字符串 我的问题是:我如何仍然可以从do()方法返回一个对象,但在对其运行回显时,它返回一个字符串或更简单的字符串;对还是错?这可能吗?您只能回显字符串。

我有一个class
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';