我在这里有两个文件:
ToBeIncludedFile.php
function printOut(){
echo "World!";
}
?>
MainFile.php
include("ToBeIncludedFile.php");
echo "Hello ".printOut();
?>
我期待“ Hello World!”.相反,我得到这个:“ World!Hello”.
我知道如果我写return而不是echo,那么一切都很好.是因为我正在回显已经在回显字符串的函数吗?但是,为什么要打印出字符串“ World!”呢?首先,不抛出错误?
解决方法:
它首先回显的原因是,它被调用了,其后是字符串“连接”(第二秒将对此进行详细说明):
您要在ToBeIncludedFile.php中返回“ World!”;而不是回声.
现在,这是发生了什么:
>您包括了不会打印任何内容的文件,这是正确的.
>您将字符串“ Hello”和printOut()的返回值串联在一起.这意味着,首先要调用该函数:
> printOut()执行并打印“ World!”,不返回任何内容.
>然后,您的主脚本将没有任何内容的“ Hello”连接起来并打印出来.
标签:include,php,echo
来源: https://codeday.me/bug/20191120/2045692.html