时间:2021-07-01 10:21:17 帮助过:27人阅读
如果
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?
一般都是这样一步一步推进去解决问题的,用实际情况去分析解决问题