关于PHP包含文件的方法

Begin

今天陆陆续续在重新写一些后台程序,用到了一些共用的PHP文件,所以顺便学习了一下几种包含文件方式

  1. include

    最常用的包含文件方法,如果遇到错误会显示warning,但是不会影响下面脚本的执行

  2. require

    比include方法严格,如果遇到错误,会显示错误并终止下方脚本的执行

  3. require_once

    同require,但是会检查该php文件是否已经被引用过,如果引用过了,就不会再引用,这个方法很好用,在一些需要反复包含的文件里面用这个方法可以防止重复定义的错误。

还有一个关于文件定位的问题,简单的网页不会产生,但是在重重包含的项目里会有这样的困扰,假如/a.php包含了/php/b.php,然后/php/b.php这个文件里又要包含/c.php,正常情况下在/php/b.php中用一下代码是不会出错的:

include "../c.php";

然而,PHP坑爹的地方就在于,/a.php包含了/php/b.php后,/php/b.php里面的include "../c.php";语句就出错了,因为被/a.php包含之后相当于/php/b.php也位于/中了

解决方法是在/php/b.php文件里,include语句改为:

dirname(__FILE__)."../c.php";

dirname(__FILE__)的作用是无论/php/b.php被誰包含了,include语句里都有以/php/b.php所在的路径为准,不会改变原有的路径

posted @ 2017-03-21 22:04 Deali-Axy 阅读(...) 评论(...) 编辑 收藏