Php 无效包含(包含但不返回)

Php 无效包含(包含但不返回),php,Php,->输出:ABC1。给我一个解决方案,我知道为什么,不用解释 您可能正在寻找输出缓冲: //include.php <?php echo 'ABC'; ?> //buzz.php <?php $a = include('include.php); echo $a ?> echo将输出到输出缓冲区,因此如果在include.php中调用echo一次,则无需在buzz.php中再次调用它 如果文件存在,include将返回1;如果不存在,则返回0。因此,当

->输出:ABC1。给我一个解决方案,我知道为什么,不用解释

您可能正在寻找输出缓冲:

//include.php  
<?php  
echo 'ABC';  
?>

//buzz.php  
<?php
$a = include('include.php);
echo $a
?>
echo将输出到输出缓冲区,因此如果在include.php中调用echo一次,则无需在buzz.php中再次调用它

如果文件存在,include将返回1;如果不存在,则返回0。因此,当include.php运行时,代码将输出ABC,然后当调用include'include.php'时,它将打印1,因为文件确实存在

要仅打印ABC,请遵循Mike的建议或更简单的方法:

//include.php  
<?php  
echo 'ABC';  
?>

//buzz.php  
<?php
ob_start()
include('include.php'); // Added the closing quote, it's missing in your example
$a = ob_get_clean();

echo $a; // ABC
?>
最后,您可以从文件返回

//include.php  
<?php  
echo 'ABC';  
?>

//buzz.php  
<?php
include('include.php);
?>
简单使用返回

你的问题是:

//include.php
return 'ABC';

//buzz.php
$data = include('include.php');
echo $data;  // ABC

如果include成功,include将返回布尔值TRUE,因此$a变为TRUE,当您输出它时,它将转换为1。

这是一个措词不当的问题。问什么?我想输出abc,而不是abc1,糟糕的英语,这样就失去了$a=和echo$a部分。通过包含它,你就不必回显它了,因为它已经在源文件中回显了吗?@seanny94确实如此,但这是我对Snoob真实世界问题的最好猜测。这就是我需要的,谢谢@seanny94:这只是一个例子:我想为我的项目制作模板引擎,所以这不是我想要的。我知道为什么,不需要解释:
//include.php
return 'ABC';

//buzz.php
$data = include('include.php');
echo $data;  // ABC
$a = include('include.php);