• 締切済み

include_once先の別ファイルに変数を渡す

同じ内容を複数のphpページで表示したいところがあるので、共通のページ(サイドメニューとか)は別に書いておき、include_onceしようと思っているのですが、元のページの変数の引渡しが出来ません(別ファイルでechoしても表示されません)。グローバル変数は表示されるのですが。 どうしたら、変数を受け渡しできるでしょうか?あるいは、include_onceとは別のやり方の方がベターでしょうか?

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なにをしたいのかわかりませんが、普通にクラスで処理しておけば 変数のうけわたしも問題ないと思いますが?

関連するQ&A

  • 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部分をファイル分けするやり方などありましたら教えて頂けますとうれしいです。

    • ベストアンサー
    • PHP
  • 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
  • include_onceの返り値

    gomi.php: <?php $x=10; include_once("gomi1.php"); //test $y=include_once("gomi1.php"); echo "<pre>$x,$y</pre>"; ?> gomi1.php: <?php $x*=2; return 999; ?> としてgomi.phpにアクセスすると 20,1 にが表示されます この1がどのようにしてでるか教えて下さい ちなみに//testの行を削除すると 20,999 が表示されます

    • ベストアンサー
    • PHP
  • include_onceで呼び出したPHPファイル

    PHPでサイトを組んでいるのですが、include_onceで以下のようにPHPの各ファイルを呼び出して実行しているのですがうまくいきません。 <?php //レンタルサーバーのcronを利用して、定期的に走らせるコードです。 include_once "example_a.php"; include_once "example_b.php"; include_once "example_c.php"; ?> 各ファイルは、RSSで読み込んだデータをMySQLに格納するプログラムです。 個別で各ファイルを実行すると正しい結果となりますが上記のようなプログラムでまとめて実行するとexample_a.phpは正しい結果となりますが、example_b.php、example_c.phpは正しく処理されません。 原因として考えられるものがあれば、教えていただきたいと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • includeしたファイルに変数を持ち込むには?

    hoge.phpでセットした変数を、そのあとにincludeした別ファイルに持ち込むことは出来るのでしょうか? 以下のような処理がしたいと思っているのですが、この状態でhoge.phpを実行すると$a=NULLとして処理されてしまいます。 inc.php  <?php    if ($a=="値") {     //TRUE処理    } else {     //FALSE処理    }  ?> hoge.php  <?php   $a = "値";   include "./inc.php";  ?>

    • 締切済み
    • PHP
  • phpのincludeについて

    お世話になります。 Apache/2.2.3 PHP5.1.6 のレンタルサーバを利用しています。 httpdocs   |___lib   |  |___test.php   |___index.php という構造にしています。 -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'lib/test.php'; echo $a; ?> --------------------- 上記の場合、index.phpには 「sample」と表示されます。 -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- 上記の場合、なぜか表示されません。 そこで「http://~~」はincludeできないのかなと思ったのですが -----test.php-------- <?php $a = 'sample'; echo $a; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; ?> --------------------- とすると、なぜか「sample」と表示されました。 この結果から、includeはできているみたいです。 なんとか -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- で「sample」と表示させたくて試行錯誤してみたのですが どうしても解決できません。 お力添えのほどお願いできればと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • インクルードファイル内にPHPコードを挿入してecho表示

    処理が異なる2つのPHPファイルを一つのテンプレートファイルから index.phpファイルへ表示させたいのですが、テンプレートファイル内に css_echo.phpをインクルードさせたコードを書くとそのままソース上に表示されてしまいます。 どのような方法をとればいいかアドバイス下さい。 ■条件としては、 ・css.php/css_echo.phpの処理ファイルはそれぞれ別ファイルとしたい ・index.phpファイルは <html> <head> <?php require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力 ?> </head> <body> <?php $temp = "./temp.html"; //このページのテンプレートファイル名パス require_once('./echo.php'); ?> </body> </html> には書かない方法で対応したいです。 ファイルは以下です。 ---------------------------------------------------------------------- テンプレートファイル(temp.html) <html> <head> <!--問題はここです。 --> <?php require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力 ?> </head> <body> サンプル表示{この中はブラウザ判別して表示・非表示にする} </body> </html> 処理PHPファイル(echo.php) <?php $htm = file_get_contents($temp); echo preg_replace('/[{}]/', '', $htm);// {}内を削除して表示 ?> ブラウザ判別用ファイル(css_echo.php) <?php //実際にはこの前にブラウザ判別し処理コード(省略) echo "<link rel=\"stylesheet\" href=\"$dir$pc\" type=\"text/css\">\n"; ?> メイン表示用PHPファイル(index.php) <?php $temp = "./temp.html"; //このページのテンプレートファイル名パス require_once('./echo.php'); ?> ------------------------------------------------------------------------

    • 締切済み
    • PHP
  • phpのクラスにて別ファイルの変数について

    PHPのクラス内で別ファイルで定義した変数を呼び出したく "require_once"でそのファイルを読みこみその変数を呼び出したのですが 「Notice: Undefined variable:」のエラーが表示されました。 他のクラスではないphpプログラムでは正常に表示されましたが クラスでは別の方法で表示する必要があるのでしょうか。 可能であればその手段もご提示頂ければ幸いです。 どなたかご教示頂けないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP5で自動的にinclude_once

    概要:Apache 2 + PHP5 において、すべてのスクリプトに自動的に、include_onceのような効果を得る方法について教えてください。 詳細: 昔開発していたPHPスクリプトにおいて スクリプト中に include_once や require_once を書かずに スクリプトが呼び出される度に、スクリプトの冒頭で include_once したかのように、パスの設定などを行う初期化スクリプトを include して実行させる方法を取っていたはずなのですが、そのやり方を忘れてしまいました。 初期化スクリプト中では define などをして、スクリプトが依存するライブラリやデータのパスの設定を変数に対して行っており、処理コストの低い簡単な処理も入ります。 すべてのスクリプトにおいて、その変数が示すパスを使ってデータの読み書きを行っています。 その手法は、Apache2 が多目的に使われる場合には、オーバーヘッドあるいは弊害があるだろうというようなものだったと思います。(当時そう思った事をなんとなく覚えている次第です) Apache2がリクエストを受け取る度に、実行されるため、そのスクリプトと関係のない php スクリプトが呼ばれた際にも自動的に取りこまれてパスなどが変数に設定されます。 その Apache 2 は、限定的な用途で利用され、サーバーマシンごと特定用途で利用することを前提としていたため、そういった手法をとったのだと思いますが、詳細は不明です。 おそらく、apache2.conf (あるいは httpd.conf) か php.ini に設定していたと思うんですが、当時の設定ファイルを読み解いても、それらしい記述が見当たらず、ここ数日悩んでおります。 一応、実行環境について書きますと 当時の実行環境は、Windows 2000 + Apache 2 + PHP 3~5(?) + PEAR + MySQL 3(?) で、現在は ubuntu + Apache 2 + PHP5 + PEAR + MySQL 5 で動かそうとしております。 このような内容なのですが、お心当たりのある方は、ご教示お願い致します。

    • ベストアンサー
    • PHP
  • PHP include_once

    include_onceで読み込んだファイルが そのままテキストとして出力されてしまいます。 以下のような感じです。 インクルードするファイル fail.inc test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); ソース本体 src.php <?php include_once('./fail.inc'); 以下処理 exit(); ?> これをそのまま実行すると以下のように出力されます。 test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); includeせずにそのまま走らせると正常に動きます。 httpd.confのaddtypeにincという拡張子は追加していませんが 他の同様のソースでは問題なく読み込めます。 require_onceとかも試しましたが同じようにfail.incの中身がそのままテキストとして 出力されてしまいます。 どうしたら正しく読み込めますでしょうか。 ご回答よろしくお願いしますm(_)m

    • ベストアンサー
    • PHP

専門家に質問してみよう