我現在都是自己在單機做一些實驗,比如要調用自己堂兄弟的路徑,我問問在真正項目裡,都怎麼調用使用路徑?
如果C:\AppServ\www\YB-PHP\PathDemo\China\ShanDong\LinYi\03.php調用C:\AppServ\www\YB-PHP\PathDemo\China\JiangSu\NanJing\NanJingEcho.php就得寫:include('../../JiangSu/NanJing/NanJingEcho.php');
這樣囉嗦不說,還老是容易弄錯幾個"../",每次我數這個,我都弄得好糊塗,怎麼寫簡單點?
我問了一下,別人告訴我用常量定義伺服器:
define('BASEPATH', 'C:\AppServ\www\YB-PHP\PathDemo\China\');include(BASEPATH . 'JiangSu/NanJing/NanJingEcho.php');
好像有個什麼許可權問題,我想問問,真正做項目的時候,都怎麼使用父路徑,堂兄弟路徑,本機路徑?保證自己換伺服器,項目還能用?
回複內容:
我現在都是自己在單機做一些實驗,比如要調用自己堂兄弟的路徑,我問問在真正項目裡,都怎麼調用使用路徑?
如果C:\AppServ\www\YB-PHP\PathDemo\China\ShanDong\LinYi\03.php調用C:\AppServ\www\YB-PHP\PathDemo\China\JiangSu\NanJing\NanJingEcho.php就得寫:include('../../JiangSu/NanJing/NanJingEcho.php');
這樣囉嗦不說,還老是容易弄錯幾個"../",每次我數這個,我都弄得好糊塗,怎麼寫簡單點?
我問了一下,別人告訴我用常量定義伺服器:
define('BASEPATH', 'C:\AppServ\www\YB-PHP\PathDemo\China\');include(BASEPATH . 'JiangSu/NanJing/NanJingEcho.php');
好像有個什麼許可權問題,我想問問,真正做項目的時候,都怎麼使用父路徑,堂兄弟路徑,本機路徑?保證自己換伺服器,項目還能用?
明顯2是更好的方案,不存在你考慮的什麼許可權問題:如果真的有許可權問題,那麼你使用 ../../的形式的時候該問題同樣會發生。
方案2也是通常使用的方式,實際上會更複雜,如:
defined('BASE_PATH') || define('BASE_PATH', __DIR__);defined('UPLOAD_BASE_URL') || define('UPLOAD_BASE_URL', '/uploads');defined('UPLOAD_PATH') || define('UPLOAD_PATH', BASE_PATH . UPLOAD_BASE_URL);//等等
具體引用檔案時則看哪個方便,比如
require_once(BASE_PATH . '/app/functions.php');//或者require_once(__DIR__ . '/functions.php');
都是OK的。
要學會使用__FILE__, __DIR__,這是最好的方式,而直接寫出路徑,如c:/workspace/project/app/functions.php,那以後項目部署到linux上怎麼辦?
所以,要充分考慮到遷移。
希望有協助。
跨項目調用?一般都是開放一個介面?或者兩個項目都要這個資料?那就單獨開一個API的項目
又或者是一個項目裡你要調用資料庫驅動類庫?那就把這個類庫放找一個lib目錄下統一去include?
一般都是這樣一步一步推進去解決問題的,用實際情況去分析解決問題