- 締切済み
取得されるメモリについて
最近PerlからPHPに乗り換えました。 Perlでは共通関数の外部ファイルを作成して、どのプログラムもそれを読み込むようにしていました。 PHPでも同じように行いたいと思っています。 仮にcommon.phpという共通関数のプログラムを作成したとします。 ここで疑問に思ったのですが、各パッケージそれぞれがcommon.phpを読み込んだ場合、やはり読み込んだ数分だけメモリが消費されるのでしょうか? common.phpがclassで定義されていて、requireで参照した場合common.phpの内容をメモリに振り分けられるのは読み込んだときなのかnewした時なのかご存知の方いらっしゃいますでしょうか? つまり、perlではグローバル変数(関数?)として読み込んでいたのですが、PHPではそれができず(できてもグローバル化はやりたくは無い)のでコレを実現させるためには各関数ごとに読み込まなくてはいけないのかどうか迷ってしまいました。 アドバイスをいただければと思い書き込ませて頂きました。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.2
- rokujiro
- ベストアンサー率53% (17/32)
回答No.1
お礼
とてもご丁寧にありがとうございます。 例えば膨大なプログラムを作成し、それをincludeで読み込んだ場合、使う時までその膨大なプログラムをメモリに展開するのかどうかが気になりました。 ですが、わざと構文を間違えて実行したところエラーが出てしまったので、おっしゃる通り読み込んだ時点ですべて展開しているようですね。 教えていただいたように、クラスのTOPに共通のオブジェクト(?)として読み込ませると、いちいち関数ごとに同じものを読み込まなくてもできるんですね!使ってみます。 ありがとうございました。大変参考になりました。