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 )

原文地址:https://www.cnblogs.com/liuzhiqaingxyz/p/9718165.html

时间: 2024-10-14 03:59:06

include与__autoload与命名空间namespace与PSR4详解的相关文章

PHP中的命名空间(namespace)及其使用详解

PHP中的命名空间(namespace)及其使用详解 晶晶 2年前 (2014-01-02) 8495次浏览 PHP php自5.3.0开始,引入了一个namespace关键字以及__NAMESPACE__魔术常量(当然use关键字或use as嵌套语句也同时引入):那么什么是命名空间呢?php官网已很明确的进行了定义并形象化解释,这里直接从php官网copy一段文字[来源]. “什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在操作系统中目录

PHP命名空间(Namespace)的使用详解

对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀. 例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment.之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量.这时候调用它们Comment提供的方法是很好的

PHP命名空间(Namespace)的使用详解(转)

对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀. 例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment.之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量.这时候调用它们Comment提供的方法是很好的

python命名空间与闭包函数详解

python命名空间与闭包函数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要介绍的知识点如下: 1>.三元运算 2>.命名空间 3>.global与nonlocal 4>.函数即变量 5>.嵌套函数 6>.闭包函数 一.三元运算 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yi

Struts(十一)Struts2的 命名空间与各种配置详解

1.package元素的abstract属性表示该包是抽象的,不能直接使用,需要由子包几层才能使用.struts-defult这个package就是abstract的,因此需要我们继承这个包来使用. 2.命名空间,package元素的namespace属性起到命名空间分割的作用.通常将namespace的属性值定义成页面所在的目录名.name属性会被子包用到.namespace是路径名.最后的访问链接:http://localhost:8080/struts2/hello/login.jsp <

js命名空间的玩法详解

1.首先为什么要用js命名空间          在我们的项目中,如果多个人为同一个页面写js的话,命名冲突就有可能发生,如果所有的函数都是全局的话,如下: a.js中 function com() {   ..... } b.js中 function com() {     ........ } 且一个页面同时引用了这两个js文件,这样我们调用的时候会出问题,可能老是调用到第一个文件里面的函数了,我之前在做一个项目的时候就碰到了这个问题,我自己b.js文件中ajax的响应函数的名字和a.js文

PHP命名空间namespace使用小结

1.介绍一下php的命名空间 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色.具体举个例子,文件 foo.txt 可以同时在目录/Home/greg 和 /Home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件.另外,在目录 /Home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /Hom

PHP 使用命名空间(namespace),实现自动加载

示例: #/DB/MySql.class.php也就是DB文件夹下有MySql.class.php文件 namespace DB; class MySql { public function __construct() { var_dump(__FILE__); } } #/index.php namespace Home; use DB\MySql; $mysql = new MySql(); 报错 Fatal error: Class 'DB\MySql' not found in D:\l

Atitit &#160;深入理解命名空间namespace &#160;java c# php js

Atitit  深入理解命名空间namespace  java c# php js 1.1. Namespace还是package1 1.2. import同时解决了令人头疼的include1 1.3. 在不支持ns的语言里面使用ns,前缀发1 1.4. 常用命名空间的统计(约150个)1 1.5. 命名空间2 1.5.1. 在struts2中2 1.6. Linux 就支持6种不同类型的命名空间.2 1.1. Namespace还是package 1.2. import同时解决了令人头疼的in