2012-04-09 54 views
0

我想讓我的代碼更清楚使用php的include函數。我在三個頁面中使用了相同的代碼部分,但其中一個頁面與我在執行代碼部分時調用的頁面相同。所以我可以代替PHP_SELF vs同一頁的網址

action="<?=$_SERVER['PHP_SELF']?>" 

使用此頁面的鏈接(action =「thispage.php」)?也爲了使用包含代碼必須完全相同?我的意思是我的部分代碼幾乎相同,只有一些小的變化。比如在每個頁面中,我都有一個我在選定鏈接中應用的CSS樣式。有沒有辦法改變代碼的一些東西?謝謝!

回答

1

當然,你可以。雖然更簡單的方法是在表單上使用action=""。空字符串告訴瀏覽器將表單提交給當前所在的頁面。

當你包含一個文件時,它實際上包含在你的代碼中,所以它「繼承」當前範圍內的所有變量。你可以在你的文件中定義一個變量,然後在另一個文件的條件內使用該變量來確定它應該做什麼。

0

那麼你可以讓你可以傳遞一些參數的函數:

function include_partial($path, $options = array()) { 
    extract($options); // import array keys as local variables 
    include($file); 
} 

// usage 
include_partial('/path/to/file', array('action' => $_SERVER['PHP_SELF']); 

當然你也可以做同樣的事情,而不僅僅指剛設置要包括從文件中的可變因素的函數:

$action = $_SERVER['PHP_SELF']; 
include('/path/to/file'); 

我喜歡的功能是什麼讓你的範圍變量,所以你的arent不斷使用的東西全局範圍。