|
常常會看到:
require_once('../../lib/some_class.php');
該方法有很多缺點:
它首先查找指定的php包含路徑, 然后查找當(dāng)前目錄.
因此會檢查過多路徑.
如果該腳本被另一目錄的腳本包含, 它的基本目錄變成了另一腳本所在的目錄.
另一問題, 當(dāng)定時任務(wù)運行該腳本, 它的上級目錄可能就不是工作目錄了.
因此最佳選擇是使用絕對路徑:
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
現(xiàn)在, 無論你移到哪個目錄, 如移到一個外網(wǎng)的服務(wù)器上, 代碼無須更改便可正確運行.
2. 不要直接使用 require, include, include_once, required_once
可以在腳本頭部引入多個文件, 像類庫, 工具文件和助手函數(shù)等, 如:
require_once('lib/Database.php');
require_once('lib/Mail.php');
require_once('helpers/utitlity_functions.php');
這種用法相當(dāng)原始. 應(yīng)該更靈活點. 應(yīng)編寫個助手函數(shù)包含文件. 例如:
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');
有什么不一樣嗎? 該代碼更具可讀性.
主站蜘蛛池模板: 国产美熟女乱又伦AV | 国产色情短视频在线网站 | 亚洲免费黄色片 | 国产午夜三级一区二区三 | 国产亚洲视频在线播放香蕉 | 性色无码AV久久蜜臀 | 校园刺激全黄H全肉细节文 校园纯肉H教室第一次 | 久久久精品免费视频 | 国产精品日本无码久久一老A | 国内精品伊人久久久久 | 国产亚洲欧美日韩综合综合二区 | 热综合一本伊人久久精品 | 亚洲精品国产字幕久久vr | 蜜臀AV人妻久久无码精品麻豆 | 免费特黄一区二区三区视频一 | 嘴巴舔着她的私处插 | 久久热国产在线视频 | 欧美video巨大粗暴18 | 狠狠色综合7777久夜色撩人 | 久久九九久精品国产尤物 | 欧美午夜a级精美理论片 | 精品国产中文字幕在线视频 | 色欲档案之麻雀台上淫 | 欧美男同gay粗大又长 | 三级网址在线观看 | 国产 亚洲 另类 欧美 在线 | 最新国产成人综合在线观看 | 国产精品第1页在线观看 | 伊人狼人久久精品热9 | 先锋影音 av | 国产高清精品自在久久 | 国产精品路线1路线2路线 | 被窝国产理论一二三影院 | 狠日狠干日曰射 | 性XXXXX搡XXXXX搡景甜 | 忘忧草在线社区WWW日本-韩国 | 国产亚洲精品久久久久久国模美 | 国产成人精品电影在线观看 | 一个人在线观看免费中文www | 亚洲国产成人精品无码区99 | 久久久久久久网站 |