プロが教える店舗&オフィスのセキュリティ対策術

質問させてください。
最近PHPを学び始めたものです。

PHPの命令として、onceというものがあることを知りました。
require_once,include_onceなど対象となるファイルの読み込みを一度しか行わないそうですが、それを行う利点は何なんでしょうか?

よろしければお教えください。

A 回答 (2件)

classやfunctionなど同じ名前で2度宣言できないものがあります。


ソースを二度includeすると競合してエラーになります。
おもにライブラリをロードするときにつかいます。

では_onceだけでいいじゃない?という質問があるかもしれませんが
競合しないソースをテンプレのように何度も取り込む可能性があります。
(効率的なフローか否かは度外視して)

結局は場合によって使い分けることになります
    • good
    • 0
この回答へのお礼

ありがとうございました。
エラー回避の目的があったのですね。

お礼日時:2010/03/08 14:05

X.php, Y.php という2つのライブラリファイルを必要とするプログラムがあったとします。


ところが、X.php も Y.php もそれぞれ、A.php というライブラリを必要とする物でした。
これを、

メインプログラム:
require "X.php";
require "Y.php";
処理。。。

X.phpファイル:
require "A.php";
処理。。。

Y.phpファイル:
require "A.php";
処理。。。

これだと、A.phpが二回読み込まれてしまいますね。
A.phpの中に#1の方が書いたように「一度しか書いてはいけない処理」があるとまずいわけです。これを避けるためにはXかYのどちらかしか同時に使えない??

と言う理由で、ライブラリはrequireじゃなくて、require_onceします。これで、「どのライブラリがどのライブラリを内部で使っているか」を意識せずに済みます。
もちろん「二回読むのは時間の無駄」という理由もあります。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
二重インクルード防止という目的があったのですね。

お礼日時:2010/03/08 14:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!