- ベストアンサー
include先でのinclude元の変数について
度々お世話になっています。 include先でのinclude元の変数の扱いについて疑問に思ったので質問させて下さい。 include元ファイルtest.php include先ファイルinclude.phpとしてtest.php内の変数をinclude.phpに渡したいと考え以下のコードを書きました。 test.php <?php $test = "いけるかな?"; include "include.php"; ?> include.php <?php echo $test; ?> 結果、$testの値を表示する事が出来なかったのですが、$testの値を表示するためにはどのような記述方法があるのでしょうか? また、このような動作を期待している理由としてはPHP部分とHTMLを分離させたいと考えており、ユーザ定義関数に変数を引数として渡して、出力処理をユーザ定義関数内で行うという事も考えたのですが、include先に値を渡す事が出来れば、非常にわかりやすく分離出来ると考えたからです。 他に、PHP部分とHTML部分をファイル分けするやり方などありましたら教えて頂けますとうれしいです。
- kurarigu
- お礼率93% (14/15)
- PHP
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>変数$aはインクルードされた b.inc スクリプトの中でも利用可能です。 <?php $a = 1; include 'b.inc'; ?> 問題なさそうに見えますけど、記述ミスとかありませんか? 先頭に ini_set('display_errors', 1); error_reporting(E_ALL); としたら何か表示されますか? include は割と自由度が高いので失敗すると余計分かりにくくなりますが ロジックと出力の分離としては基本的な設計と思います。 この構成に、View(HTML)用の値を格納する箱(オブジェクト等)を作り、 Viewはその箱の値を操作するようにする、とかやっていけば いわゆるMVCモデリングに近づきます。
- 参考URL:
- http://jp2.php.net/include/
その他の回答 (1)
- SAYKA
- ベストアンサー率34% (944/2776)
そいつはスコープと呼ばれるものだね http://www.php.net/manual/ja/language.variables.scope.php 形としては // test.php { $test = "いけるかな?"; { //include.php echo $test; } } こうなってると思ったら判りやすいかな?
お礼
お騒がせして申し訳御座いません。 テスト時にファイルを逆に捕らえていたようで勘違いしていました。 質問を投稿してからいろいろ試していたのですが、上記のファイル取り違えのままテストしていたため、変数が正常に表示出来ていない状態でした。 無事表示出来る事を確認致しました。 提示して頂いた参考URL、関数を利用する場合の扱いなど今後の参考にさせて頂きます。 この度はご迷惑おかけして本当にごめんなさい。
関連するQ&A
- includeしたファイルに変数を持ち込むには?
hoge.phpでセットした変数を、そのあとにincludeした別ファイルに持ち込むことは出来るのでしょうか? 以下のような処理がしたいと思っているのですが、この状態でhoge.phpを実行すると$a=NULLとして処理されてしまいます。 inc.php <?php if ($a=="値") { //TRUE処理 } else { //FALSE処理 } ?> hoge.php <?php $a = "値"; include "./inc.php"; ?>
- 締切済み
- PHP
- インクルード元を知りたい
PHP5.2.4を使用しています。 [a.php] <?php include("b.php"); include("c.php"); $c = new classC(); [b.php] <?php class classB { } [c.php] <?php class classC { public function __construct() { $c = new classB();//←b.phpファイルがどこでインクルードされたか知りたい } } という3つのファイルがあり、a.phpにアクセスするとします。 c.phpファイルのコンストラクタでb.phpファイルにあるclassBを生成していますが、 これはa.phpファイルにおいて先にinclude("b.php");があるので c.phpファイル内でもclassBを認識できると思います。 そこでc.phpファイル内でb.phpファイルがどこでインクルードされたか(この例ではa.phpファイル) 調べる方法なり関数というのはあるのでしょうか?
- ベストアンサー
- PHP
- include_once先の別ファイルに変数を渡す
同じ内容を複数のphpページで表示したいところがあるので、共通のページ(サイドメニューとか)は別に書いておき、include_onceしようと思っているのですが、元のページの変数の引渡しが出来ません(別ファイルでechoしても表示されません)。グローバル変数は表示されるのですが。 どうしたら、変数を受け渡しできるでしょうか?あるいは、include_onceとは別のやり方の方がベターでしょうか?
- 締切済み
- PHP
- includeで読み込んだ内容を変数にいれたい
includeで読み込んだファイル内容を変数に格納する方法はありますか? 動的ページをHTMLファイルで出力したいと思っています。 例: if(!file_exists("$file")){ mkdir("$file",0755); } $fp = fopen("$file/index.html","w") flock($fp, LOCK_EX); $hoge = include("./hoge.php"); fputs($fp,'<html>'."\n"); fputs($fp,'$hoge'."\n"); fputs($fp,'</html>'."\n"); この様に、$hogeの中に読み込んだファイルを書き込みたいのですが、 うまくできません。 この様な方法で変数にいれるのは可能でしょうか? 宜しくお願いします。
- ベストアンサー
- PHP
- include元ファイルでのgetElementByIdについて
SHTMLの中に複数のHTMLをインクルードし、 include先ファイル内にIDを利用して折りたたんで表示/非表示を切り替えるjava scriptを入れてあり、 include元ファイルでは、すべてのinclude先ファイルの折りたたみを非表示にしたい。のですが、 エラーでオブジェクトが無いと出てしまいます。 include元ファイルでは、include先ファイル内のIDが認識出来ない、 読み込みがinclude先ファイルの方が後だから、ということでしょうか? これではだめだとするとほかに何か方法ありますか?
- ベストアンサー
- JavaScript
- 変数など厳密なプログラムが書きたいのですが、どうすればよいでしょうか?
PHPで関数の引数に渡すとき、以下のように$aaを$aとしてしまった場合に 関数内の$idは値がありませんが、関数内でこれを検出することができるのでしょうか? Perlなら use strict;とし、my等で定義されていない変数はすべて警告表示されますが、PHPはスルーです。 変数など厳密なプログラムが書きたいのですが、どうすればよいでしょうか? $aa = 1; test($a) function test($id){ ... }
- ベストアンサー
- PHP
- 変数をHTML内で表記する方法
.jsファイル内で定義した変数をHTML内で表記するためにはどうすればいいでしょうか? 例えば、test.js内に function test{ var abc = "こんにちは"; } という関数があったとするとこの関数内にあるabcを動的にHTMLに表示させるためにはどうすればいいでしょうか HTMLでないと駄目なのでdocument.write等は使用出来ません。 よろしくお願い致します。
- ベストアンサー
- JavaScript
- includeとinclude_onceの使い分け
まずマニュアルを。 ------------------------------------------------------ PHP: include_once - Manual http://www.php.net/manual/ja/function.include-once.php include_once 命令は、スクリプトの実行時に指定したファイルを読み込み評価します。この動作は、include 命令と似ていますが、ファイルからのコードが既に読み込まれている場合は、再度読み込まれないという重要な違いがあります。その名が示す通り、ファイルは一度しか読み込まれません。 include_once は、スクリプトの実行時に同じファイルが複数回読み込まれ、評価される可能性がある場合に、関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるために使用します。 ------------------------------------------------------ …。表面的な機能の違いはわかりました。しかしそれをどう使い分けるのかの説明はなく、分かりませんでした。 よく分からない点は以下です。 ・同じファイルを何度も「include」もしくは「include_once」するケース ・あえて何度も記述しながら実際には1度しか評価してほしくないケース ・何度も記述して、そのつど評価したいケース これらについて例を挙げて教えていただきたいです。 よろしくお願いします。
- ベストアンサー
- PHP
- 別ファイルの変数を呼び出したいのですが?
初めて質問させて頂くPHP初心者の者です。 例えば、 (a.php)というファイル内で導き出された変数の値($a)を、(b.php)というファイル内に呼び出したいのですが、関数等を利用して呼び出す事は出来るでしょうか? -----a.php------------------------- <?php $a=xxxx; //導き出された変数$a(の値) ?> ----------------------------------- -----b.php------------------------- <?php $a=△△△△; //このファイル内で変数$a(の値)を呼び出したい ?> ------------------------------------ よろしくお願い致します
- ベストアンサー
- PHP
お礼
お返事ありがとうございます。 仰る通り、ファイルを逆に考えてテストしておりました。 お騒がせして申し訳御座いません。 いろいろ調べてみても「可能」という事なのに、自分の環境では再現出来ない(と思い込んでいた)ので何か特別な設定があるのかと勘違いしておりました。 >include は割と自由度が高いので失敗すると余計分かりにくくなりますが 身をもって体験致しました。 >この構成に、View(HTML)用の値を格納する箱(オブジェクト等)を作り、 >Viewはその箱の値を操作するようにする、とかやっていけば >いわゆるMVCモデリングに近づきます。 オブジェクトや、MVCモデリングといった考え方は私にはまだ理解が遠いですが、今後の参考にさせて頂きます。 この度はご迷惑おかけして本当にごめんなさい。