1ãæ¦è¦
ãã require()è¯å¥çæ§è½ä¸include()ç¸ç±»ä¼¼ï¼é½æ¯å
æ¬å¹¶è¿è¡æå®æ件ãä¸åä¹å¤å¨äºï¼å¯¹include()è¯å¥æ¥è¯´ï¼å¨æ§è¡æ件æ¶æ¯æ¬¡é½è¦è¿è¡è¯»ååè¯ä¼°ï¼è对äºrequire()æ¥è¯´ï¼æ件åªå¤çä¸æ¬¡ï¼å®é
ä¸ï¼æ件å
容æ¿æ¢require()è¯å¥ï¼ãè¿å°±æå³çå¦æå¯è½æ§è¡å¤æ¬¡ç代ç ï¼å使ç¨require()æçæ¯è¾é«ãå¦å¤ä¸æ¹é¢ï¼å¦ææ¯æ¬¡æ§è¡ä»£ç æ¶æ¯è¯»åä¸åçæ件ï¼æè
æéè¿ä¸ç»æ件è¿ä»£ç循ç¯ï¼å°±ä½¿ç¨include()è¯å¥ã
ããrequireç使ç¨æ¹æ³å¦ï¼require("myfile.php")ï¼è¿ä¸ªè¯å¥é常æ¾å¨PHPèæ¬ç¨åºçæåé¢ãPHPç¨åºå¨æ§è¡åï¼å°±ä¼å
读å
¥require()è¯å¥æå¼å
¥çæ件ï¼ä½¿å®åæPHPèæ¬æ件çä¸é¨åãinclude使ç¨æ¹æ³årequireä¸æ ·å¦ï¼include("myfile.php")ï¼èè¿ä¸ªè¯å¥ä¸è¬æ¯æ¾å¨æµç¨æ§å¶çå¤çåºæ®µä¸ãPHPèæ¬æ件å¨è¯»å°include()è¯å¥æ¶ï¼æå°å®å
å«çæ件读åè¿æ¥ãè¿ç§æ¹å¼ï¼å¯ä»¥æç¨å¼æ§è¡æ¶çæµç¨ç®ååã
incluceå¨ç¨å°æ¶å è½½
requireå¨ä¸å¼å§å°±å è½½
_onceåç¼è¡¨ç¤ºå·²å è½½çä¸å è½½
ããPHPç³»ç»å¨å è½½PHPç¨åºæ¶æä¸ä¸ªä¼ªç¼è¯è¿ç¨ï¼å¯ä½¿ç¨åºè¿è¡é度å å¿«ãä½incluceçææ¡£ä»ä¸ºè§£éæ§è¡ãincludeçæ件ä¸åºéäºï¼ä¸»ç¨åºç»§ç»å¾ä¸æ§è¡ï¼requireçæ件åºéäºï¼ä¸»ç¨åºä¹åäºï¼æ以å
å«çæ件åºé对系ç»å½±åä¸å¤§çè¯ï¼å¦çé¢æ件ï¼å°±ç¨includeï¼å¦åç¨requireã
ããrequire()åinclude()è¯å¥æ¯è¯è¨ç»æï¼ä¸æ¯çæ£çå½æ°ï¼å¯ä»¥åphpä¸å
¶ä»çè¯è¨ç»æä¸æ ·ï¼ä¾å¦echo()å¯ä»¥ä½¿ç¨
echo("ab")å½¢å¼ï¼ä¹å¯ä»¥ä½¿ç¨echo
"abc"å½¢å¼è¾åºå符串abcãrequire()åinclude()è¯å¥ä¹å¯ä»¥ä¸å åæ¬å·èç´æ¥å åæ°ã
ããinclude_once()årequire_once()è¯å¥ä¹æ¯å¨èæ¬æ§è¡æé´å
æ¬è¿è¡æå®æ件ãæ¤è¡ä¸ºåinclude()è¯å¥å
require()类似ï¼ä½¿ç¨æ¹æ³ä¹ä¸æ ·ãå¯ä¸åºå«æ¯å¦æ该æ件ä¸ç代ç å·²ç»è¢«å
æ¬äºï¼åä¸ä¼å次å
æ¬ãè¿ä¸¤ä¸ªè¯å¥åºè¯¥ç¨äºå¨èæ¬æ§è¡æé´ï¼åä¸ä¸ªæ件æ
å¯è½è¢«å
æ¬è¶
è¿ä¸æ¬¡çæ
åµä¸ï¼ç¡®ä¿å®åªè¢«å
æ¬ä¸æ¬¡ï¼ä»¥é¿å
å½æ°éå®ä¹ä»¥ååééæ°èµå¼çé®é¢ã
2ã详æ
2.1 æ¥é
ããincludeå¼å
¥æ件çæ¶åï¼å¦æ碰å°é误ï¼ä¼ç»åºæ示ï¼å¹¶ç»§ç»è¿è¡ä¸è¾¹ç代ç ã
ããrequireå¼å
¥æ件çæ¶åï¼å¦æ碰å°é误ï¼ä¼ç»åºæ示ï¼å¹¶åæ¢è¿è¡ä¸è¾¹ç代ç ã
ããç¨ä¾åæ¥è¯´è¯ï¼å两个phpæ件ï¼åå为test-include.phpåtest-require.phpï¼æ³¨æç¸åçç®å½ä¸ï¼ä¸è¦åå¨ä¸ä¸ªååæ¯test-nothing.phpçæ件ã
test-include.php
<?php
include 'test-nothing.php';
echo 'abc';
?>
test-require.php
<?php
require 'test-nothing.php';
echo 'abc';
?>
ããæµè§
http://localhost/test-include.phpï¼å 为没ææ¾å°test-nothing.phpæ件ï¼æ们çå°äºæ¥éä¿¡æ¯ï¼åæ¶ï¼æ¥éä¿¡æ¯çä¸è¾¹æ¾ç¤ºäºabcï¼ä½ çå°çå¯è½æ¯ç±»ä¼¼ä¸è¾¹çæ
åµï¼
Warning: include(test-nothing.php) [function.include]: failed to open
stream: No such file or directory in D:\www\test-include.php on line 2
Warning: include()
[function.include]: Failed opening 'test-nothing.php' for inclusion
(include_path='.;C:\php5\pear') in D:\www\test-include.php on line 2
abc
æµè§
http://localhost/test-require.phpï¼å 为没ææ¾å°test-nothing.phpæ件ï¼æ们çå°äºæ¥éä¿¡æ¯ï¼ä½æ¯ï¼æ¥éä¿¡æ¯çä¸è¾¹æ²¡ææ¾ç¤ºabcï¼ä½ çå°çå¯è½æ¯ç±»ä¼¼ä¸è¾¹çæ
åµï¼
Warning: require(test-nothing.php) [function.require]: failed to open
stream: No such file or directory in D:\www\test-require.php on line 2
Fatal error: require()
[function.require]: Failed opening required 'test-nothing'
(include_path='.;C:\php5\pear') in D:\www\test-require.php on line 2
2.2 æ¡ä»¶å¼ç¨
ããinclude()ä¸require()çåè½ç¸åï¼ç¨æ³ä¸å´æä¸äºä¸åï¼include()æ¯ææ¡ä»¶å
å«å½æ°ï¼èrequire()åæ¯æ æ¡ä»¶å
å«å½æ°ã
ããä¾å¦ä¸é¢ä¾åï¼å¦æåé$somg为çï¼åå°å
å«æ件somefile.phpï¼
if($some){
ããinclude 'somefile.php';
}
ããä½æ 论$someåä½å¼ï¼ä¸é¢ç代ç å°ææ件somefile.phpå
å«è¿æ件éï¼
if($something){
ããrequire 'somefile.php';
}
ããä¸é¢çä¾åå
å说æäºè¿ä¸¤ä¸ªå½æ°ä¹é´çä¸åï¼
$i = 1;
while ($i < 3) {
ããrequire "somefile.$i.php";
ãã$i++;
}
ããå¯ä»¥ä»ä»¥ä¸è¿æ®µä»£ç ä¸çåºï¼æ¯ä¸æ¬¡å¾ªç¯çæ¶åï¼ç¨åºé½å°æåä¸ä¸ªæ件å
å«è¿å»ï¼å¾æ¾ç¶è¿ä¸æ¯æ们æ³è¦çï¼å¯ä»¥çåºè¿æ®µä»£ç å¸æå¨æ¯æ¬¡å¾ªç¯æ¶ï¼å°ä¸åçæ件å
å«è¿æ¥ï¼å¦æè¦å®æè¿ä¸ªåè½ï¼åªè½ä½¿ç¨å½æ°include()ï¼
$i = 1;
while ($i < 3) {
ããinclude "somefile.$i.php";
ãã$i++;
}
2.3 æ件å¼ç¨æ¹å¼
ããinclude()æ§è¡æ¶éè¦å¼ç¨çæ件æ¯æ¬¡é½è¦è¿è¡è¯»ååè¯ä¼°ï¼require()æ§è¡æ¶éè¦å¼ç¨çæ件åªå¤çä¸æ¬¡ï¼å®é
ä¸æ§è¡æ¶éè¦å¼ç¨ç
æ件å
容æ¿æ¢äºrequire()è¯å¥ï¼å¯ä»¥çåºè¥æå
å«è¿äºæ令ä¹ä¸ç代ç åå¯è½æ§è¡å¤æ¬¡ç代ç ï¼å使ç¨require()æçæ¯è¾é«ï¼è¥æ¯æ¬¡æ§è¡ä»£ç
æ¶ç¸è¯»åä¸åçæ件æè
æéè¿ä¸ç»æ件å 代ç循ç¯ï¼å°±ä½¿ç¨include()ï¼å¯ä»¥ç»æ³è¦å
æ¬çæ件å设置åéï¼å½åæ°ä¸º
include()æ¶ä½¿ç¨è¿ä¸ªåéã