分析PHP的include机制

  php在解析include指令时,会对包含的文件路径做如下判断:

    如果是绝对路径,则直接包含,并结束。

    如果是相对路径,则做如下判断:

      相对路径以特殊符号开头,如 "./1.php"、"../1.php"等,则以当前工作目录为相对路径的基点,找不到则报错。

      相对路径不以特殊符号开头,如 "1.php"、"subdir/1.php"等,则会根据php.ini中设置的 include_path、当前文件所属目录(__DIR__)、当前工作目录构成一个待选目录列表,然后依次从列表头部开始,取出待选列表中的一个路径, 然后把要包含的文件名附加在这个路径后面, 进行尝试. 如果成功包含, 则返回, 否则继续下一个待选路径。也就是按以下顺序查找: include_path -->  __DIR__ --> getcwd()

  注意:1. include_path 中的 . 代表当前工作目录,而不是代表当前文件所属目录

原文地址:https://www.cnblogs.com/helloprogram/p/3289523.html