私のスクリプトでは、変数に基づいて含めるページを選択します。
インクルードされたページは、メイン ページで定義された変数を受け取りますか? それとも、それらを再定義する必要がありますか?
もしそうなら、含まれているページに変数を渡す最良の方法は何ですか?
include("page.php?var=".$var) を試してみました
しかし、実際にはその文字列名のファイルを含めようとしているようです。
アドバイス?
定義する$var = 1
と、その後include("page.php");
、変数はそのファイルでアクセス可能になります。これは、既に取得したものの拡張にすぎないためです。
この ... "include("page.php?var=".$var)" は機能しません
代わりに、次のことを試してください。
page1.php
<?php
$dog_name = "scruff";
include("otherpage.php");
?>
otherpage.php
<?php
echo $dog_name;
?>
これは page1.php に出力されます:
scruff
ミッドナイトライトニングが言ったように、「最初のページですでにスコープ内にある変数は、2番目のページですでに定義されています。」
インクルードページの前に変数を定義すると、クエリ文字列は必要ありません。変数は、含まれているページで名前だけでアクセスされます。例えば
$name = "Awais"
include("page.php");
次にpage.php
echo $name; //will print Awais
メインページで変数自体を設定することをお勧めします。HTTP GET リクエストではなく、ローカル ファイルinclude
をインクルードしようとしますが、とにかく変数を設定するだけで使用できます。
最初のページで既にスコープ内にある変数は、2 番目のページで既に定義されています。
インクルードされたページは、メイン ページで定義された変数を受け取りますか?
はい、含めるコードは同じスコープ内にあります。これも文書化された動作です。 を参照してくださいinclude
。
$var = 'value';
include('page.php'); # has $var defined now.
unset($var);
include('page.php'); # has $var undefined now.
ご覧のとおり、再調整する必要はありません。
ただし、副作用があるため、それを分離したい場合があります。以下を参照してください。