PHP之autoload理解

举个例子就可以看懂了:

同一目录中有2个文件index.php和test.php,在test.php中定义一个test类。

test.php

<?php

class  test{

    public function __construct()
    {
        echo ‘hello world‘;
    }

}

index.php

<?php

function __autoload($name)
{
    require "$name.php";
}

$test = new test();

运行脚本index.php,发现程序正常输出了‘hello world’。可是index.php中并没有定义test类,这是因为创建类实例的时候,PHP会自动优先调用“__autoload()”方法,并且会把类名作为参数传递给autoload方法。

这样,我们就可以在autoload方法中将要使用的类文件“require”过来。

时间: 2024-10-11 09:31:57

PHP之autoload理解的相关文章

PHP autoload与spl_autoload自动加载机制的深入理解

PHP autoload与spl_autoload自动加载机制的深入理解 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-05我要评论 本篇文章是对PHP中的autoload与spl_autoload自动加载机制进行了详细的分析介绍,需要的朋友参考下 PHP autoload机制详解(1) autoload机制概述在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利.这 也是OO设计的基本思想

深入理解require/include的顺序

在大型的Web项目中, include_path是一个模块化设计的根本中的根本(当然,现在也有很多基于autoload的设计, 这个不影响本文的探讨), 但是正是因为include_path, 经常会让我们遇到一些因为没有找到正确的文件而导致的看似”诡异”的问题. 也就有了如下的疑问: include_path是怎么起作用的? 如果有多个include_path顺序是怎么样的? 什么情况下include_path不起作用? 今天, 我就全面的介绍下这个问题, 先从一个例子开始吧. 如下的目录结构

autoload方法

因为 每个文件都include 即麻烦也不环保,所以需要一种用到了再映入进来的方法,__autoload()方法: 注意:__autoload() 是专门为 类的不存在 而设计的!!!很多框架利用这个函数,实现 类文件的自动加载 !!!   <?php function __autoload($classname) { require_once $classname . '.php'; } //MyClass1类不存在时,自动调用__autoload()函数,传入参数”MyClass1” $ob

php spl_autoload_register 注册__autoload()函数 及其和autoload的对比

 在越来越多的开源项目中,看到spl_autoload_register的使用,这是一个怎样的函数,它的优点是什么,下面对这个PHP 函数进行详细介绍.   spl_autoload_register介绍 查询PHP官网 http://php.net/manual/zh/function.spl-autoload-register.php 解释如下: 将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们. 如果在你的程序中已经实现了__autoload函数,它必

PHP规范PSR0和PSR4的理解

一.PSR0简介 下文描述了若要使用一个通用的自动加载器(autoloader),你所需要遵守的规范: 一个完全标准的命名空间(namespace)和类(class)的结构是这样的:\<Vendor Name>\(<Namespace>\)*<Class Name> 每个命名空间(namespace)都必须有一个顶级的空间名(namespace)("组织名(Vendor Name)"). 每个命名空间(namespace)中可以根据需要使用任意数量的

使用PSR-4配合composer autoload 自动加载文件夹

require 文件很麻烦,使用PSR-4搭配composer一次加载,终生受用. 感觉类似java中的import了,自己先记录一下最近理解的. 用composer管理自己的包吧 安装composer 这个不多赘述 英文版教程 中文版教程 PSR-4规范 PSR-4-autoloader 构建项目目录 |-project ? |-src ? |-View.php ? |-app ? |-Tools.php |-composer.json 上面路径的View.php在project/src/Vi

深入理解TCP协议及其源代码-send和recv背后数据的收发过程

send和recv背后数据的收发过程 send和recv是TCP常用的发送数据和接受数据函数,这两个函数具体在linux内核的代码实现上是如何实现的呢? ssize_t recv(int sockfd, void buf, size_t len, int flags) ssize_t send(int sockfd, const void buf, size_t len, int flags) 理论分析 对于send函数,比较容易理解,捋一下计算机网络的知识,可以大概的到实现的方法,首先TCP是

Python——深入理解urllib、urllib2及requests(requests不建议使用?)

深入理解urllib.urllib2及requests            python Python 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议[1] .Python语法简洁而清晰,具有丰富和强大的类库. urllib and urllib2 区别 urllib和urllib2模块都做与请求URL相关的操作,但

关于SVM数学细节逻辑的个人理解(三) :SMO算法理解

第三部分:SMO算法的个人理解 接下来的这部分我觉得是最难理解的?而且计算也是最难得,就是SMO算法. SMO算法就是帮助我们求解: s.t.   这个优化问题的. 虽然这个优化问题只剩下了α这一个变量,但是别忘了α是一个向量,有m个αi等着我们去优化,所以还是很麻烦,所以大神提出了SMO算法来解决这个优化问题. 关于SMO最好的资料还是论文<Sequential Minimal Optimization A Fast Algorithm for Training Support Vector