質問: 例えば下のようにb.phpでa.phpをincludeすると、b.phpにa.phpのhtmlが実行されてしまい、a、b二つのコードがなぜか実行されてしまいます。 ``` #b.php include "a.php"; ``` なぜこうなってしまうのでしょうか。a.phpをb.phpで表示させないようにするにはどうすればいいのでしょうか。 【追記】 includeしたのは、a.phpにある配列をb.phpでも使いたかったからです。
回答: 実行しないのに呼び込むという意味がよくわかりません たんに文字列としてよびだしたいならfile_get_contentsやその他 file I/O処理で読み込んでください。 即時実行しないでとりあえず読んでおきたいなら クラスで管理すればいいでしょう sample ======= * a.php a.phpは変数も設定するし、出力もする ``` $a=[1,2,3]; print "hogehoge"; ``` * b.php a.php引き継ぐけど出力は無視したい→バッファリングする ``` ob_start(); include "a.php"; ob_end_clean(); print_r($a); ``` ※ただし、これをなにも考えずにやってしまうと、a.phpとb.phpの間で 変数が競合する可能性が高いです。 そのためそれぞれのphpごとに切り分けるためclassを実装するのが普通です