include与__autoload与命名空间namespace与PSR4详解

Posted liuzhiqaingxyz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了include与__autoload与命名空间namespace与PSR4详解相关的知识,希望对你有一定的参考价值。

1. include, require, include_once, require_once

include和require是php中引入源文件最基本的用法,其他例如__autoload, namespace, PSR4等其实都是调用include,或者require而成

 include和require的执行查找步骤:

(1)被包含文件先按参数给出的路径寻找;

(2)如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找;

(3)如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找;

(4)如果最后仍未找到文件则 include 结构会发出一条notice;require则会发出一个error

 include和include_once的区别在于如果已经包含过文件,则include_once不再包含;require和require_once的区别也是如此

 

2. __autoload加载未定义的类

__autoload实现加载未定义的类依然是通过include或者require来实现

 用法为:

void __autoload ( string $class )

 


以上是关于include与__autoload与命名空间namespace与PSR4详解的主要内容,如果未能解决你的问题,请参考以下文章

php __autoload 在有命名空间的时候失效(使用的局限性)

php命名空间+spl_autoload_register实现类的自动加载

PHP自动加载autoload和命名空的应用

PHP自动加载autoload和命名空的应用

20190707

PHP 类的命名空间 和自动载入