|
常常會看到:
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');
有什么不一樣嗎? 該代碼更具可讀性.
主站蜘蛛池模板: xxxx69美国| 十七岁日本免费完整版BD | 午夜理伦片免费 | 99久久久精品免费观看国产 | 挠黑色超薄丝袜脚心vk40分钟 | 国产精品永久免费 | 一本道本线中文无码 | 男人的天堂MV在线视频免费观看 | 四库影院永久国产精品 | 三级网址在线 | 国产精品嫩草影院 | 国产精品人妻无码免费A片导航 | 免费看男人J放进女人J无遮掩 | 卫生间被教官做好爽HH视频 | 久久精品中文闷骚内射 | 久久青青热 | 久久精品日本免费线 | 美女网站免费看 | 国产精品免费观看视频播放 | 国产剧果冻传媒星空在线观看 | JK白丝校花爽到娇喘视频 | 九九热这里有精品 | 无码乱人伦一区二区亚洲 | 国产美女一区二区 | 久久久无码精品亚洲A片猫咪 | 久久久无码精品亚洲日韩按摩 | 一级特黄aa大片欧美 | 在线高清视频不卡无码 | 狠狠干狠狠色 | 嗯啊好爽视频 | 99久久综合国产精品免费 | 蜜芽在线播放免费人成日韩视频 | 日本黄 色大片全 | 久草网国产自偷拍 | 精品无码日本蜜桃麻豆 | 欧美性暴力变态xxxx | 欧美精品做人一级爱免费 | [高清无码] 波多野结衣| 牢记永久免费网址 | 久久精品国产免费播高清无卡 | 精品区2区3区4区产品乱码9 |