include_once 并包含函数 return 奇怪的输出
include_once and include function return strange output
这是我的代码:
abc.php
<?php
for($i=1;$i<4;$i++){
echo include_once('text.php');
echo include('text.php');
}
?>
text.php
Hello World
Returns 输出:
Hello World1Hello World11Hello World11Hello World1
以上输出中的 1
是什么?
1 是 include_once 调用的 return 值。如果包含 include_once 不存在的文件,return 结果将为 false。
如果您尝试使用 include_once 再次包含同一文件,则 return 值将为真。
以下是所有迭代:
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
.
如注释中所述,include 自动回显代码,因此 echo include
回显文件,并回显 include 函数的 return 值 :)。这是真的 = 1.
去掉include & include_once前面的echo .
这是错误的
echo include_once('text.php');
回声包括('text.php');
在这些函数前面放置 echo 只会 return 是否找到并包含文件。
jacek-kowalewski 早些时候指出了这一点。尽管说 include 自动 echoes 可能有点令人困惑。 include() 将代码注入到函数调用的主文件中。包含文件的内容可能只是文本,也可能是更多 php 代码。如果是更多代码,除非调用 echo 函数,否则它不会回显任何内容。
我不明白对同一个文件使用 include 和 include_once?
- text.php
同时使用 include_once() 和 include() 会产生一种相互抵消的情况。 include_once('text.php')表示text.php可以仅在主脚本中包含一次。另一方面,包含将允许 text.php 包含与调用函数一样多的次数。但是在这种情况下 text.php 不能多次调用,因为 include_once() 已经设置了一次规则。
See Includes Canceling
如果有一串文字要连续两次输出到网页,那么应该把echo命令放在[=里面88=] 文件:
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
这是我的代码:
abc.php
<?php
for($i=1;$i<4;$i++){
echo include_once('text.php');
echo include('text.php');
}
?>
text.php
Hello World
Returns 输出:
Hello World1Hello World11Hello World11Hello World1
以上输出中的 1
是什么?
1 是 include_once 调用的 return 值。如果包含 include_once 不存在的文件,return 结果将为 false。 如果您尝试使用 include_once 再次包含同一文件,则 return 值将为真。
以下是所有迭代:
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
.
如注释中所述,include 自动回显代码,因此 echo include
回显文件,并回显 include 函数的 return 值 :)。这是真的 = 1.
去掉include & include_once前面的echo .
这是错误的
echo include_once('text.php');
回声包括('text.php');
在这些函数前面放置 echo 只会 return 是否找到并包含文件。 jacek-kowalewski 早些时候指出了这一点。尽管说 include 自动 echoes 可能有点令人困惑。 include() 将代码注入到函数调用的主文件中。包含文件的内容可能只是文本,也可能是更多 php 代码。如果是更多代码,除非调用 echo 函数,否则它不会回显任何内容。
我不明白对同一个文件使用 include 和 include_once? - text.php
同时使用 include_once() 和 include() 会产生一种相互抵消的情况。 include_once('text.php')表示text.php可以仅在主脚本中包含一次。另一方面,包含将允许 text.php 包含与调用函数一样多的次数。但是在这种情况下 text.php 不能多次调用,因为 include_once() 已经设置了一次规则。 See Includes Canceling
如果有一串文字要连续两次输出到网页,那么应该把echo命令放在[=里面88=] 文件:
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