我希望能夠通過鍵入我想要的文件的名稱來包含或要求來自同一父目錄(模塊)的文件包括而不總是寫出require_once('../app/modules/user/user.php')
所以我想出了這樣的想法,把它包裝在這樣的功能內:函數中所需的文件中設置的變量仍會導致「注意:未定義的變量」警告
index.php文件。
//index.php
function require_file($modules=array())
{
foreach($modules as $module) {
if (is_dir('../app/modules/' . $module) && file_exists('../app/modules/' . $module . '/' . $module . '.php')) {
require_once('../app/modules/' . $module . '/' . $module . '.php');
} else {
die('The module <strong>' . $module . '</strong> does not exist in the modules directory');
}
}
}
// and then require my files like this:
$modules = array();
$modules[] = 'user';
require_file($modules);
這是我的目錄是什麼樣子:
1. app
- modules
- user
- user.php
2. public
- index.php
這是我user.php的文件:
//user.php
$user = 'My Name';
這是問題所在;
如果在index.php內所用的設定withing的user.php的文件中的變量仍然拋出說明:未定義變量:用戶而不失效的
is_dir or the file_exists
測試,並且當失敗它輸出一個模按摩說「模塊用戶模塊目錄中不存在」就像它應該。當我需要的功能後,右擊文件,以檢查是否該文件已被要求過一次,如下圖所示:
的index.php
function require_file($modules=array())
{
foreach($modules as $module) {
if (is_dir('../app/modules/' . $module) && file_exists('../app/modules/' . $module . '/' . $module . '.php')) {
require_once('../app/modules/' . $module . '/' . $module . '.php');
} else {
die('The module <strong>' . $module . '</strong> does not exist in the modules directory');
}
}
}
// and then require my files like this:
$modules = array();
$modules[] = 'user';
require_file($modules);
require_once('../app/modules/user/user.php');
它不因爲它顯然已經被要求過一次。
問題是......我做錯了什麼?
因此,您向我們展示了除user.php之外的所有內容。你期望我們猜測那裏有什麼? –
它是在那裏...設置變量$用戶。 – tsommie
您可能想了解一下[PHP自動加載](http://php.net/manual/en/language.oop5.autoload.php),它幾乎完全符合您的要求(在類的上下文中) – Martin