- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数の引き渡し)
変数の引き渡しに関する問題と解決方法
このQ&Aのポイント
- phpのバージョンが4.3.9から5.3.6に上がった際に、Undefined variableのメッセージが表示され、正常に動作しない問題が発生しています。具体的には、変数year、month、dateをphp1からphp2に引き渡しているが、php2でこれらの変数を定義していないためです。
- 対策としては、php2(A.php)で引き渡される変数year、month、dateを受け取るための処理を追加する必要があります。具体的には、php2のコードの中で変数$_GETを使用して、year、month、dateの値を取得し、それぞれの変数に代入することです。
- 以下は、修正後のコードの一部です。 if (isset($_GET['year'])) { $year = $_GET['year']; } if (isset($_GET['month'])) { $month = $_GET['month']; } if (isset($_GET['date'])) { $date = $_GET['date']; }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(1)php2のファイルでも、$_GETから取得する (2)php2で使用したい機能を関数化して、php1で引数として年月日を渡す などでどうでしょうかね?
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
NOTICEがでるのはエラーレポートのデバッグレベルの問題ですね 宣言していない変数を出力しようとしてますね >php1 から php2(A.php) に引き渡されている のところが何をしているのかさっぱりわかりませんが、NOTICEを消したいだけなら php.iniのerror_reportingが error_reporting = E_ALL(もしくあ E_ALL | E_STRICT) になっているなら、E_NOTICEを除外してやればいいでしょう error_reporting = E_ALL & ~E_NOTICE; サーバーの設定が変えられないなど、個別ファイルでやるしかない場合は <?PHP error_reporting ( E_ALL & ~E_NOTICE ); ?> などスクリプトのの頭の方で宣言してください。 遷移によるデータの引き渡しができないというなら別問題なので 別途詳しい状況を付加して質問を再投稿してください
質問者
お礼
早速にありがとうございます。 ド素人故、質問が要領を得ておらず、申し訳ございません。 NOTICE を消しても、引数が渡っていないため、正常に動作しないので、問題解決にはならなそうです。 うまくお伝えできるかわかりませんが、再投稿してみます。 ありがとうございました。
お礼
お教え頂いた(1) の方法で、無事解決いたしました! ver.4.39 では、php2 では特に定義せず、そのまま引数を使うことができたのですが、ver5.3.6 では、$_GET を用いて定義する必要があるのですね。要領を得ない質問でしたのに、的確なご助言を下さり、どうもありがとうございました。 しばらく雑務でこの問題に向き合う時間が取れず、お礼が大変遅くなってしまいましたこと、お詫び申し上げますとともに、心より御礼申し上げます。