字符串的连接以错误的顺序回显

concat of strings echos in wrong order

我有一个class

$page=new page;

有功能,

header() {
echo 'blah blah';
}

现在如果我将两个字符串连接在一起,

$string= "";
$string .= " 1234";
$string .= $page->header();
echo $string;

结果,

blah blah 1234

如何才能以正确的顺序获取它?

函数中的echo 语句在调用该函数时立即执行。这就是为什么您首先看到它的原因。如果你想将它作为字符串附加到你需要 return 该值:

public function header() {
    return 'blah blah';
}

你只是在回显字符串。

你的header()函数应该return一个字符串:

function header() {
    return 'blah blah';
}

您没有 return 在您的函数中为字符串连接设置值,您只是在回显 "blah blah"。您的代码相当于:

$string = "";
$string .= "1234";
echo "blah blah";
$string .= "";
echo $string;

您需要 return 函数中的字符串以用于连接,例如:

function header() { return "blah blah"; }