新手的PHP文件,很抱歉讓您煩惱。在PHP中包含帶有參數
我想問一些問題,如果我想包括一個php頁面,我可以使用參數來定義我將調用的頁面嗎?
假設我必須在我的模板頁面中包含標題部分。每個頁面都有不同的標題,這些標題將被表示爲圖像。所以,
我可以在我的template.php裏面調用<?php @include('title.php',<image title>); ?>
嗎?
所以包含將返回帶有特定圖片的標題頁來表示標題。
謝謝你們。
新手的PHP文件,很抱歉讓您煩惱。在PHP中包含帶有參數
我想問一些問題,如果我想包括一個php頁面,我可以使用參數來定義我將調用的頁面嗎?
假設我必須在我的模板頁面中包含標題部分。每個頁面都有不同的標題,這些標題將被表示爲圖像。所以,
我可以在我的template.php裏面調用<?php @include('title.php',<image title>); ?>
嗎?
所以包含將返回帶有特定圖片的標題頁來表示標題。
謝謝你們。
包含的頁面將會看到當前作用域的所有變量。
$title = 'image title';
include('title.php');
然後在你的title.php文件中有那個變量。
echo '<h1>'.$title.'</h1>';
建議在使用它之前檢查變量isset()。喜歡這個。
if(isset($title))
{
echo '<h1>'.$title.'</h1>';
}
else
{
// handle an error
}
編輯:
另外,如果你想用一個函數調用的方法。最好使該功能特定於被包含文件執行的活動。
function do_title($title)
{
include('title.php'); // note: $title will be a local variable
}
不知道這是你在找什麼,但你可以創建一個函數來包含文件並傳遞一個變量。
function includeFile($file, $param) {
echo $param;
include_once($file);
}
includeFile('title.php', "title");
在你包含的文件,你可以這樣做:
<?php
return function($title) {
do_title_things($title);
do_other_things();
};
function do_title_things($title) {
// ...
}
function do_other_things() {
// ...
}
然後,您可以傳遞參數這樣:
$callback = include('myfile.php');
$callback('new title');
另一種較常用的模式是讓變量的新範圍通過:
function include_with_vars($file, $params) {
extract($params);
include($file);
}
include_with_vars('myfile.php', array(
'title' => 'my title'
));
包括(..)缺少的文件不是失敗,而是一個警告,並將返回False。因此,$ callback = include(..)是一種不安全的做法。 – cgTag
包含的頁面將可以訪問包含之前定義的那些變量。如果你需要包含特定變量,我建議在要包含的頁面上定義這些變量
謝謝mathew:D – Coderama