|
常常會看到:
require_once('../../lib/some_class.php');
該方法有很多缺點:
它首先查找指定的php包含路徑, 然后查找當前目錄.
因此會檢查過多路徑.
如果該腳本被另一目錄的腳本包含, 它的基本目錄變成了另一腳本所在的目錄.
另一問題, 當定時任務運行該腳本, 它的上級目錄可能就不是工作目錄了.
因此最佳選擇是使用絕對路徑:
define('ROOT' , '/var/www/project/');
require_once(ROOT . '../../lib/some_class.php');
//rest of the code
我們定義了一個絕對路徑, 值被寫死了. 我們還可以改進它. 路徑 /var/www/project 也可能會改變, 那么我們每次都要改變它嗎? 不是的, 我們可以使用__FILE__常量, 如:
//suppose your script is /var/www/project/index.php
//Then __FILE__ will always have that full path.
define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
require_once(ROOT . '../../lib/some_class.php');
//rest of the code
現在, 無論你移到哪個目錄, 如移到一個外網的服務器上, 代碼無須更改便可正確運行.
2. 不要直接使用 require, include, include_once, required_once
可以在腳本頭部引入多個文件, 像類庫, 工具文件和助手函數等, 如:
require_once('lib/Database.php');
require_once('lib/Mail.php');
require_once('helpers/utitlity_functions.php');
這種用法相當原始. 應該更靈活點. 應編寫個助手函數包含文件. 例如:
function load_class($class_name)
{
//path to the class file
$path = ROOT . '/lib/' . $class_name . '.php');
require_once( $path );
}
load_class('Database');
load_class('Mail');
有什么不一樣嗎? 該代碼更具可讀性.
主站蜘蛛池模板: 成人免费无毒在线观看网站 | 99国产精品久久久久久久日本竹 | 日韩AV爽爽爽久久久久久 | 亚洲合集综合久久性色 | 国产69精品久久久久观看软件 | 狠狠色狠狠色综合曰曰 | 背着老婆爆操性感小姨子 | 激情床戏视频片段有叫声 | 永久免费无码AV国产网站 | 天堂岛www| 又紧又大又爽精品一区二区 | 99国产精品白浆在线观看免费 | 摥管专用动态图399期 | 国内国外精品影片无人区 | 免费国产成人高清在线观看视频 | 亚洲精品成A人在线观看 | 国产亚洲va在线电影 | 国产综合自拍 偷拍在线 | 狂野猛交xxxx吃奶 | 男人j进女人j一进一出 | 欧美一区二区激情视频 | 色姐妹久久综合在线av | 久久91精品国产91久 | 亚洲欧美国产综合在线一区 | 国产精品无码无卡毛片不卡视 | 亚洲伊人久久综合影院2021 | 久久re亚洲在线视频 | 亚洲中文无码永久免费 | 中国少妇内射XXXHD免费 | AV久久久囯产果冻传媒 | 新影音先锋男人色资源网 | 99热这里只有是精品 | 国产精品九九久久 | 国产久久精品热99看 | 国产亚洲精品久久久久久久 | 国产成人无码精品久久久影院 | 日韩毛片大全 | 粉嫩国产14xxxxx0000 | 亚洲国产果果在线播放在线 | 飘雪韩国在线观看免费高清完整版 | 国产精品野外AV久久久 |