2012-03-20 53 views
1

我想呼應一個頁面特定的文本字符串。當標籤在頁面上時,我對此沒有任何問題,但是在包含內容時,我遇到了問題。例如:回聲從一個包含的數據字符串

的index.php

<?php 

$StringData1 = "String of page specific text on page echoes."; 
include("IncludeHeader.php"); 

?> 
<html> 

<head></head> 
<body> 

<p>Start Echo Test</p> 
<p>Echo Test For StringData1: <?php echo "$StringData1"; ?></p> 
<p><?php include("IncludeFile.php");?></p> 
<p>Stop Echo Test</p> 

</body> 
</html> 

IncludeHeader.php

// Many Global Variables called from various CSV Files. To be exact $StrindData2 is actually $StringData2[1] from an array. The array is of a row of CSV fields 
$StringData2 = "String of page specific text in include won't echo."; 

IncludeFile.php

Echo Test For Included StringData2: <?php echo "$StringData2"; ?> 

當index.php的運行的輸出爲:

<html> 

<head></head> 
<body> 

<p>Start Echo Test</p> 
<p>Echo Test For StringData1: String of page specific text on page echoes.</p> 
<p>Echo Test For Included StringData2: </p> 
<p>Stop Echo Test</p> 

</body> 
</html> 

從這個例子中,我怎麼能得到$ StringData2從包含內部回顯?

感謝您的任何幫助。

+1

另外:你不需要引用變量! 'echo $ StringData2'工作正常。 – deceze 2012-03-20 05:42:00

+0

查看http://stackoverflow.com/questions/3558336/pass-variable-to-string-in-include-file-php – 2012-03-20 05:42:41

+0

另外,激活錯誤報告,讓我們知道,如果你看到任何錯誤:'error_reporting(E_ALL) ; ini_set('display_errors',true);' – deceze 2012-03-20 05:43:14

回答

0

嘗試此代碼:

IncludeFile.php

Echo "Test for Included StringData2: $StringData2"; 
2

doc狀態:

當包括一個文件,它包含了代碼繼承的變量 範圍發生包含的行。從該點開始,調用文件中該行的可用變量 將在被調用的 文件中可用。但是,包含文件中定義的所有函數和類 都具有全局範圍。

也是:

如果include出現於調用文件中的一個函數裏,然後 都包含在所謂的文件的行爲的代碼,就好像它 在該函數中定義。因此,它將遵循該函數的變量 範圍。此規則的一個例外是魔術常量 ,在包含發生之前由解析器對其進行評估。

是你的例子縮寫還是你的確切代碼?所示的原始示例應該可以正常工作。

您的更新示例應該仍然有效。

劃傷我最後的編輯。我想你真的需要想出一個能夠再現相同行爲的縮寫示例。

+0

該示例被縮寫。實際上$ StringData2是從數組中拉出的$ StringData [1]。該數組是從行csv字段構建的(長篇故事,但不能使用SQL)。它包含在另一個包含全局使用(和編輯)。 – ZombieBunnies 2012-03-20 06:14:36

相關問題