|
常常會看到:
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');
有什么不一樣嗎? 該代碼更具可讀性.
主站蜘蛛池模板: 阿尔法电影| 琅琊榜 豆瓣| 姐妹会| 陈颖芝电影全集| 恶魔在线观看免费观看全集高清| 荒野求生21天美国原版观看| dnf代码大全| 表妹直播| 仓本c仔| 恩齐| 澳亚卫视| 《起风了》数字简谱| 男男性恋免费视频网站| 广西百色地图| 19岁女性写真| 男生女生向前冲第六季2014| 即便如此我依然爱着我的老婆| 漂亮女员工被老板糟蹋| 内蒙古通辽地图| 监狱风云美剧| 钢铁侠全防4.0| 一级片黄色录像免费看| 穿上触手内衣被调教堕落| 恋爱选举巧克力| 鲁班书咒语大全| 寇世勋个人资料简介| 小姐诱心在线| 黄日华版射雕英雄传| 吴京的《战狼3》| 冷血惊魂| alurajenson主演的电影| 红灯停绿灯行电影观看| 西门庆潘金莲电影| 日本电影芋虫| 爱来爱去微电视完整| 性感美女动漫| 林青霞离婚| 正在恋爱中 电视剧韩剧免费全集结局| 美女热吻| 演员任贤齐简历| remember11|