繁体   English   中英

PHP返回的字符串没有“ echo”?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM