我在这里有两个文件:
ToBeIncludedFile.php
<?php
function printOut(){
echo "World!";
}
?>
主文件.php
<?php
include("ToBeIncludedFile.php");
echo "Hello ".printOut();
?>
我会期待"你好,世界!"。相反,我得到的是:"世界!你好"。
我知道如果我写return而不是echo,那么一切都很好。是因为我在回显一个已经在回显字符串的函数吗?但为什么它会先打印出字符串"World!"而不抛出错误呢?
它首先回声的原因是因为它被调用了,而之后是"串联"的字符串(稍后会详细介绍):
您想要的ToBeIncludedFile.php
是return "World!";
,而不是echo。
现在,情况就是这样:
- 您包含的文件没有打印任何内容,这是正确的
- 串接字符串"Hello"和
printOut()
的返回值。这意味着,首先调用该函数: - printOut()执行并打印"World!",不返回任何内容
- 然后,您的主脚本将"Hello"与任何内容连接起来并打印出来