这是我的项目结构,
我尝试从 view/index.php 中通过 controller 从 model 获取数据后显示到 display.php 上,
view/index.php
controller/Controller.php
奇怪的是,在 model/Model.php 文件中,我发现 include_once("DBConn.php") 可以正确显示数据(DBConn.php会去连接mysql, 里面有一个$mysqli的变量),但 include_once("./DBConn.php") 或者 include_once("model/DBConn.php") 都不行,这是为什么呢?
model/Model.php
include_once 的路径机制是怎样的?为什么有时候绝对路径可以,有时相对路径可以?
由于我直接在云服务器商提供的LAMP环境开发的,没有任何错误提示,所以Debug过程非常痛苦。
更新:这个相对路径似乎和我访问路径有关
的确与你想的一样:
require_once()
取决于入口文件(第一个访问的文件)所在位置。官方文档中提到一嘴:解决办法如下:
基本的思想是:
这样以来,无论无哪个文件访问调用,便都可以在执行
require_once()
时解析正常的路径了。另外原生的PHP 仅适用于学习阶段,如果真想用PHP开发项目,还得上框架:ThinkPHP5.0入门实例教程推荐一下。