2012-03-20 1 views
1

ページ固有の文字列をエコーし​​たい。タグがページ上にあるときに私はこれに問題がありませんが、インクルード内にplacdされているときに問題が発生しています。例:インクルード内のデータ文字列をエコーする

の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

+0

を参照してください。http://stackoverflow.com/questions/3558336/pass-variable-to-string-in-include-file-php –

+0

また、エラー報告を有効にして、エラーが表示された場合はお知らせください: 'error_reporting(E_ALL) ; ini_set( 'display_errors'、true); ' – deceze

答えて

0

このコードを試してみてください。

IncludeFile.php

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

doc状態:

ファイルが含まれている場合、それが含まれているコードは、変数の スコープを継承しますインクルードが発生する行呼び出すファイル内のその行にある利用可能な変数 は、その時点から呼び出された ファイル内で使用可能になります。ただし、インクルードされたファイルに定義されているすべての関数とクラス にはグローバルスコープがあります。

またその:

インクルードが含まれている場合、それは は、その関数内で定義されていたかのように呼ばれるファイルに含まれるコードのすべてが動作します 、その後、呼び出し元ファイル内の関数の内部で発生。したがって、その関数の変数 のスコープに従います。このルールの例外は、包含が発生する前にパーサーによって評価されるマジック定数 です。

あなたの例は省略されたか、それともあなたの正確なコードですか?表示されている元の例は正常に動作するはずです。

あなたの更新された例は引き続き有効です。

スクラッチ私の最後の編集。私はあなたが本当に同じ振る舞いを再現する簡略化された例を考え出す必要があると思います。

+0

この例は省略されています。実際、$ StringData2は$ StringData [1]で配列から引き出されています。配列は行csvフィールドから作成されます(長いストーリーですが、SQLは使用できません)。これは、グローバルに使用(および編集)される別のインクルードに含まれています。 – ZombieBunnies

関連する問題