解決PHP的include帶參數的問題
php的include可以載入一個外部php檔案,其參數是一個檔案名稱,既然是檔案名稱,就不能帶參數了。
php中,如果include載入的檔案一定要帶參數,就只有一種辦法,即這個參數是一個全路徑的URL地址。
例如:
include "http://localhost/aaa.php?id=1"; //正確
include "aaa.php?id=1"; //錯誤
其實include本義就只是用來載入一個外部檔案到當前檔案中來的,並不解釋其中的代碼。因此帶參數看上去似乎沒有意義。
比如以下代碼(1.php):
$a="123";
include "aaa.php";
想要用aaa.php接收變數$a的值,只需要在aaa.php中直接調用即可,比如aaa.php的代碼如下寫:
echo $a;
這樣執行1.php,即會輸出$a的值:123
然而,有問題就肯定是有需求,我們既然要求include帶參數,就肯定不僅僅是想在被載入的檔案中使用載入者檔案中的變數這麼簡單。
現在的需求是:
希望根據不同的參數,include同一個檔案中的不同程式碼片段。
基於上述要求,我的解決方案是:
把被載入的檔案(假設為aaa.php)中的代碼寫成function,例如:
function abc($x)
{
$returnValue;
switch($x)
{
case 1:
$returnValue="蘋果";break;
case 2:
$returnValue="香蕉";break;
case 3:
$returnValue="楊桃";break;
}
}
然後在主檔案(假設為1.php)中這樣寫:
include "aaa.php";
echo abc(1); //輸出:蘋果
echo abc(2); //輸出:香蕉
echo abc(3); //輸出:楊桃
其實照上面這種方法,說到底,與前面說的直接使用主檔案中的變數,並沒有什麼大的區別,但是這樣做的好處是,不管你主檔案中的變數如何變化,aaa.php中的這個function都不需要改動,並且也可以在別的檔案中繼續被include來使用。
這樣一來,直接使用主檔案中的變數 與 做成函數放在主檔案中調用,兩者之間的區別,已經顯而易見了!
原創:千雪網路 http://www.ayinsky.com
以下是我自己使用中遇到的一些經驗的總結:使用readfile(“http://XXXX/example.php?name=valude”);可以傳遞帶參數的檔案~~