質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

5835閲覧

phpでrequire関数を複数回使用する場合

po_tato

総合スコア97

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/02/06 02:10

phpでrequire関数を使用して他のphpを読み込んで、その変数を使用したりしているのですが、
以下のような場合に上手く処理が進まないことがありましたので、質問させて頂きます。

例えば、
parent.php,
child1.php,
child2.php
という3つのphpファイルがあるとして、
parent.phpでrequire関数を使用してchild1.phpとchild2.phpを読み込む処理を行います。
下記の場合、parent.phpを試すと"helloworld"と表示されます。
そこで、①の部分に、追加のコードを入れると、"hello"しか表示されません。

これはなぜでしょうか?
また、対処法などはございますでしょうか?

//parent.php require_once('child1.php'); //①入れる箇所 require_once('child2.php');
//child1.php $aaa = "hello"; echo $aaa;
//child2.php $bbb = "world"; echo $bbb;
//追加するコード $ccc = $aaa; echo $ccc;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/06 02:18

hellohelloworld と出ますよ。
m.ts10806

2019/02/06 02:29 編集

その追加コードを入れた完全なコードと エラー表示onにして確認した結果を質問に追記してください。 https://qiita.com/shotets/items/3c95aef631b2c5eadae5 完全なコードでないとこちらも正しく再現確認できませんので
guest

回答3

0

書き損じて文法エラーとか生じてないか、
変更途中でファイル保存してないとか、
点検するといいかも。

投稿2019/02/06 02:21

編集2019/02/06 02:22
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

例としてあげたものは皆様がおっしゃる通りの表示で出ました。
結局、解決したのですが、
詳しく説明すると、本来のコードはもっと大量のコードがあるので今回は例に上げたchild1、child2では分かりやすく少ないコードで示しました。本来のphpのchild1、child2の冒頭では同一のphpファイルをrequire_onceしております。そちらが原因で、parent.phpのほうで順番に実行されていくときに一度child1で呼ばれたので、その次のchild2では呼ばれずにデータ表示されないということになってました。
require_onceからrequireに変更することで無事解決致しました。
コメントをしていただきありがとうございました。

投稿2019/02/06 06:11

po_tato

総合スコア97

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/06 09:25

質問文が簡素すぎるからそのまま各コードではないだろうとは察したものの、 実態を反映していないサンプルコードじゃ解決が遠のくので もうちょっと質問文を工夫してほしいと思った。
po_tato

2019/02/07 07:10

そうですよね、すみません。
guest

0

parent.phpを

PHP

1<?PHP 2require_once('child1.php'); 3$ccc = $aaa; 4echo $ccc; 5require_once('child2.php'); 6?>

とするということでしょうか?
普通にやれば「hellohelloworld」と表示されます

投稿2019/02/06 02:17

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問