[英]PHP return string without “echo”?
我有一个包含很多“返回”功能的类:
Class Components_superclass
{
public function build()
{
$this->add_category('Grille');
}
public function add_category($name)
{
return '<div class="category">'. $name .'</div>';
}
...
}
我想获取包含在“ add_category”函数中的html代码。 但是,当我回应这一点时,我什么也没有:
$component = new Components_superclass();
echo $component->build();
我必须在构建函数中添加“ return”吗? 有办法避免这种情况吗? 因为我有很多函数要调用,所以我不想写这样的东西:
public function build()
{
return
$this->function_1() .
$this->function_2() .
$this->function_3();
}
谢谢 !
是的, echo
不起作用,因为从构建中未返回任何内容–没有将可打印的字符串传递到回声中。
关于第二个问题,您可以在内部缓冲字符串,然后立即返回它,如下所示:
Class Components_superclass
{
private $buffer = array();
// …
public function add_category($name)
{
$this->buffer[] = '<div class="category">'. $name .'</div>';
}
public function output()
{
return implode('', $this->buffer);
}
}
如果要让函数返回一个值(可以是字符串,整数或其他类型),请使用return
。 如果调用该函数,则返回的值将在该位置可用。
如果function_1()
返回字符串“我是函数一”,而您回显了函数调用( echo $this->function_1();
),则将回显字符串“我是函数一”。
这也是使用功能的正确方法。 如果您想从函数内部回显,只需在函数中回显即可。
查看PHP.net的功能文档 !
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.