echo
hiện đầu ra NGAY LẬP TỨC. Nếu bạn cố gắng lặp lại một hàm mà bản thân nó tạo ra tiếng vọng, thì tiếng vọng của hàm sẽ thực thi FIRST. ví dụ:
function foo() {
echo 'foo';
}
echo 'bar' . foo(); // output foobar
và thực thi tương đương với
echo 'foo';
echo 'bar';
Tại sao? Bởi vì echo
đầu tiên phải xây dựng chuỗi được xuất. Vì vậy, trước bar
có thể được lặp lại, tiếng vọng gốc phải gọi foo()
. Hàm đó không trả về bất cứ thứ gì, nó chỉ đơn giản thực hiện tiếng vọng của chính nó. nhiều echo
các cuộc gọi không phối hợp với nhau, vì vậy tiếng vang của foo thực hiện đầu ra của nó. thì foo không trả lại gì cho echo gốc, vì vậy bạn đang thực hiện echo 'bar' . null
và xuất ra bar
.
Nếu bạn có cái này:
function bar() {
return 'bar';
}
echo 'foo' . bar();
nó sẽ hoạt động như mong đợi. Trình tự thực hiện sẽ là:
$temp = bar(); // $temp gets string'bar'
echo 'foo' . $temp;
echo 'foo' . 'bar';
echo 'foobar';
-> output foobar