引入PHP包含文件 重用PHP程序代碼
發表時間:2023-08-22 來源:明輝站整理相關軟件相關文章人氣:
[摘要]當頁面中再三重復用到同樣的內容時,用include()函數包含文件,這個方法可以簡化編碼工作。例如,關聯相同的數據庫;在頁面的頁眉或頁腳顯示相同的HTML。類似的應用不勝枚舉。那么如何來應用呢?&l...
當頁面中再三重復用到同樣的內容時,用include()函數包含文件,這個方法可以簡化編碼工作。例如,關聯相同的數據庫;在頁面的頁眉或頁腳顯示相同的HTML。類似的應用不勝枚舉。那么如何來應用呢?
<html>
<body>
<?php
include ("example.inc");
?>
</body>
</html>
現在來看一下,在“example.inc”文件中,如果加入如下的代碼:
<?php
$hello = "Hello World";
echo $hello;
?>
就和把它們全部直接寫到前面的代碼中一樣。唯一要注意的是必須把PHP分隔符(上述代碼的首行和末行)也加入被包含的文件中,否則這些代碼僅僅在那里顯示而不被執行。實際上可以指定任何包含文件的名字,用.inc文件名是為了來把它們和其他PHP腳本中分隔開。也可以用下面方法實現,
<?php
require ("example.inc");
?>
這和上面的include()函數包含有什么區別呢?如果用require()函數包含的文件不存在,那么當運行腳本時程序就停止運行并給出錯誤信息。如果是用include包含的話,則顯示一條警告,仍繼續執行腳本。在我們下面的例子中,就是一個可能出現錯誤例子。用include()函數包含時候出現如下錯誤提示:
Warning: Failed opening 'hello.inc' for inclusion (include_path='') in /tutorial/9.php on line 6
如果用require()函數包含文件,可能出現以下錯誤信息:
Fatal error: Failed opening required 'hello.inc' (include_path='') in /tutorial/9.php on line 6
看到里邊的細微差別了嗎?用require包含文件的話,給出了一個“嚴重錯誤;而用include()函數包含文件只給出一個“警告”。
用包含文件唯一的問題是是否在包含文件中保存了密碼。既然當連接數據庫時,PostgreSQL 不用密碼(至少本例中不用),那這個問題就不重要了。在以后的例子中,我們會用一個文件來包含所有信息。
[補充--by Boban]
1). 兩者的區別是,require()函數包含進來的內容是作為整個文檔的一個組成,而include()函數則不是。在一個正確的PHP程序中,使用require()函數的時候,如果包含進來的文件語法或者其他錯誤,則整個文檔的PHP腳本都不再運行;如果使用include()函數包含的時候,程序只在有語法錯誤的地方提示錯誤,而PHP腳本的其他正確的部分繼續運行。
2). include()函數可以使用在條件語句、循環控制語句中,例如if(1==1),來判斷是否需要包含該文件,而require()函數將忽略這些條件,不管3721統統包含進來。
3). 如果包含文件中定義了變量、函數、類等,最好使用include()函數,并且做一個宏定義,例如if(!define("_EXAMPLE_INC")) define("_EXAMPLE_INC",1);語句防止重復包含而導致錯誤。