2010-08-07 62 views
-1
//include.php 
<?php 
echo 'ABC'; 
?> 

//buzz.php 
<?php 
$a = include('include.php); 
echo $a 
?> 

- >輸出:ABC1。給我一個解決方案(我知道爲什麼,不需要解釋);void include(包含不帶回車)

+3

這是一個措辭不佳的問題。有什麼要求? – esqew 2010-08-07 01:50:59

+0

我想輸出abc,而不是abc1,(壞英文) – Snoob 2010-08-07 01:51:50

+1

因此,丟失'$ a ='和'echo $ a'部分。 – 2010-08-07 01:52:48

回答

3

輸出緩衝可能是你在找什麼:

//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 
?> 
+0

難道你不會'包含'它,因爲它已經在源文件中被回顯了嗎? – esqew 2010-08-07 01:53:29

+2

@ seanny94確實,但這是我對Snoob真實世界問題的最好猜測。 – 2010-08-07 01:54:29

+0

這是我需要的,謝謝。 @ seanny94:這只是一個例子:) – Snoob 2010-08-07 01:55:29

2

echo將輸出到輸出緩衝區,因此,如果調用呼應include.php一次,然後你不必試圖調用它再次在buzz.php中。

include()將返回1如果文件存在,0如果不這樣你的代碼將輸出ABC運行include.php時,那麼它會打印1時,包括(「include.php」)被稱爲,因爲該文件確實存在。

如要只打印ABC跟隨麥克的建議或簡單:

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

//buzz.php 
<?php 
include('include.php); 
?> 

最後,你可以從文件中返回;

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

//buzz.php 
<?php 
$a = include('include.php'); 
echo $a; 
?> 
+0

我想爲我的項目製作模板引擎,所以這不是我想要的。 – Snoob 2010-08-07 02:05:18

0

只需使用return

//include.php 
return 'ABC'; 

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

你的問題是這樣的:

$a = include('include.php); 

include()將返回Boolean如果包括成功,那麼$一個爲TRUE,它被轉換爲當您輸出它時,請輸入1

+0

我知道爲什麼,不需要解釋:) – Snoob 2010-08-07 05:41:54

相關問題