2014.
01.
14
08:25:13
結論から書けば
require→何回でも読むよ
require→一回しか読まないよ(もう読み込んでいたら読まないよ)
が違います。それだけ。
昔書いたつもりなのですが見つからなかったので、再度(?)書いておきます。
例えば、こんな中身の「hoge.php」を用意してφ(--)
このコードを実行するとφ(--)
こんな結果になりますφ(--)
require_onceの2回目の「hoge」が出力されていないですね。
2回目のrequire_onceで「hoge.php」が読み込まれていないことが分かります。
ちなみに「require_onceの回数」では無く「読み込んだ回数」なのでご注意ください。
例えば、こんなコードを実行するとφ(--)
こんな結果になりますφ(--)
「hoge.php」は1回目のrequireで読み込まれています。
例えrequire_onceが1回目でも既に読み込まれたファイル(hoge.php)は読み込まれないのです。
require_onceさんは何気に便利な奴ですよ。
例えば、関数を定義した外部ファイルはrequireではなくrequire_onceで読み込むのが一般的です。
requireで読み込むと重複定義になることが往々にしてあるので。
外部ファイルを読み込む関数はいろいろありますが、個人的には
require_once→大抵これ。
require→たまーに必要に迫られて使う。けど滅多に使わない。
include_once→使わない。
include→使わない。
ってな感じですかね。
requireとincludeの違いについては
PHP、includeとrequireの違い
をご覧ください。
取りあえず、完了\(--)/
require→何回でも読むよ
require→一回しか読まないよ(もう読み込んでいたら読まないよ)
が違います。それだけ。
昔書いたつもりなのですが見つからなかったので、再度(?)書いておきます。
例えば、こんな中身の「hoge.php」を用意してφ(--)
<?php
print "hoge<br>\n";
print "hoge<br>\n";
このコードを実行するとφ(--)
<?php
print "■require_once start<br>\n";
//require_once
require_once("hoge.php");
//require_once2回目
require_once("hoge.php");
print "□require_once end<br>\n";
print "■require start<br>\n";
//require
require("hoge.php");
//require2回目
require("hoge.php");
print "□require end<br>\n";
print "■require_once start<br>\n";
//require_once
require_once("hoge.php");
//require_once2回目
require_once("hoge.php");
print "□require_once end<br>\n";
print "■require start<br>\n";
//require
require("hoge.php");
//require2回目
require("hoge.php");
print "□require end<br>\n";
こんな結果になりますφ(--)
■require_once start
hoge
□require_once end
■require start
hoge
hoge
□require end
hoge
□require_once end
■require start
hoge
hoge
□require end
require_onceの2回目の「hoge」が出力されていないですね。
2回目のrequire_onceで「hoge.php」が読み込まれていないことが分かります。
ちなみに「require_onceの回数」では無く「読み込んだ回数」なのでご注意ください。
例えば、こんなコードを実行するとφ(--)
<?php
print "■require start<br>\n";
//require
require("hoge.php");
print "□require end<br>\n";
print "■require_once start<br>\n";
//require_once
require_once("hoge.php");
print "□require_once end<br>\n";
print "■require start<br>\n";
//require
require("hoge.php");
print "□require end<br>\n";
print "■require_once start<br>\n";
//require_once
require_once("hoge.php");
print "□require_once end<br>\n";
こんな結果になりますφ(--)
■require start
hoge
□require end
■require_once start
□require_once end
hoge
□require end
■require_once start
□require_once end
「hoge.php」は1回目のrequireで読み込まれています。
例えrequire_onceが1回目でも既に読み込まれたファイル(hoge.php)は読み込まれないのです。
require_onceさんは何気に便利な奴ですよ。
例えば、関数を定義した外部ファイルはrequireではなくrequire_onceで読み込むのが一般的です。
requireで読み込むと重複定義になることが往々にしてあるので。
外部ファイルを読み込む関数はいろいろありますが、個人的には
require_once→大抵これ。
require→たまーに必要に迫られて使う。けど滅多に使わない。
include_once→使わない。
include→使わない。
ってな感じですかね。
requireとincludeの違いについては
PHP、includeとrequireの違い
をご覧ください。
取りあえず、完了\(--)/