include_once和include函数返回奇怪的输出

时间:2015-01-28 17:50:02

标签: php include

这是我的代码:

abc.php

<?php

for($i=1;$i<4;$i++){
    echo include_once('text.php');
    echo include('text.php');
}

?>

text.php

Hello World

返回输出:

Hello World1Hello World11Hello World11Hello World1

以上输出中的1是什么?

3 个答案:

答案 0 :(得分:1)

以下是所有迭代:

1) include_once: Hello World1 // include file echo automaticaly, and echo 1 (success)
   include: Hello World1 // include file echo automaticaly, and echo 1 (success)
2) include_once: 1 // included already only success...
   include: Hello World1
3) include_once: 1 // included already only success...
   include: Hello World1
4) include_once: 1 // included already only success...
   include: Hello World1

输出:Hello World1Hello World11Hello World11Hello World1

如评论中所述,包含自动回显代码,因此echo include回显文件,并回显包含函数的返回值:)。这是真的= 1。

答案 1 :(得分:0)

1是include_once调用的返回值。如果包含include_once不存在的文件,则返回结果将为false。 如果您尝试使用include_once再次包含该文件,则返回值为true。

答案 2 :(得分:0)

include &amp;前面取出 echo 。的 include_once

这是错误的

echo include_once(&#39; text.php&#39;);

echo include(&#39; text.php&#39;);

在前面放置 echo 这些函数只会返回是否找到并包含该文件。 jacek-kowalewski早些时候指出了这一点。虽然说包括自动回声可能会有些混乱。 include()将代码注入主文件,无论函数调用在哪里。包含文件的内容可能只是文本或它可能是更多的PHP代码。如果它是更多的代码,它将不会回显任何东西,除非调用echo函数。


我不明白对同一个文件使用包含 include_once ? - text.php

使用 include_once() include()一起创建一个取消另一个的情况。 include_once(&#39; text.php&#39;)表示 text.php 只能在主脚本中包含 一次 EM> 即可。另一方面,Include将允许text.php包含与调用函数一样多的次数。但在这种情况下, text.php 不能多次调用,因为include_once()已经将规则设置为仅一次。 See Includes Canceling

如果您想要连续两次输出到网页的文字字符串,那么您应该将 echo 命令放在 text.php 文件中:

echo 'My String of Text';

echo 'My Second String of Text';

然后将 include_once 放入主脚本中:

include_once('text.php');

你可能想要像这样重写你的脚本:

for($i=0;$i<5;$i++){
echo 'Text '.$i.'<br />';
 $i =$i+1;
echo 'Text '.$i.'<br />';
}

您的输出将是:

Text 0
Text 1
Text 2
Text 3
Text 4
Text 5