__autoload()尝试加载未定义的类

在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。PHP5 以后提供了这样一个方法可以自动完成加载所需的类文件。

参见官网的例子:

./myClass.php
<?php
class myClass {
    public function __construct() {
        echo "myClass init‘ed successfuly!!!";
    }
}
?>

./index.php
<?php
// we‘ve writen this code where we need
function __autoload($classname) {
    $filename = "./". $classname .".php";
    include_once($filename);
}

// we‘ve called a class ***
//在__autoload方法存在的情况下,实现了所new对象的类文件的自动加载
$obj = new myClass();
?>

注意:注意类名和类的文件名必须一致,才能使用魔术函数__autoload().

时间: 2024-12-17 05:14:27

__autoload()尝试加载未定义的类的相关文章

7. 反射技术:其实就是动态加载一个指定的类

反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员.简单说:反射技术可以对一个类进行解剖. 反射的好处:大大的增强了程序的扩展性. 反射的基本步骤: 1.获得Class对象,就是获取到指定的名称的字节码文件对象. 2.实例化对象,获得类的属性.方法或构造函数. 3.访问属性.调用方法.调用构造函数创建对象. 获取这个Class对象,有三种方式: 1:通过每个对象都具备的方法getClass来获取.

PHP加载另一个文件类的方法

加载另一个文件类的方法 当前文件下有a.php 和b.php,想要在class b中引入class a <?php    class a    {        public $name = 'zhouqi';        public function say()        {            echo 'hello '.$this->name;        }    } <?php    class b    {        //require('a.php'); 错

CI框架加载library下面的类

我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字母大写,比如说文件名Excel.php  类名应该为Excel 3.通过$this->load->library('类');方式在你需要的地方加载 4.也可以在application/config/autoload.php中加载,在文件中加上$autoload['libraries'] = arr

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Client,直接解压,设置Path就ok了.具体设置如下:1.下载32位Oracle InstantClient 2.将Oracle InstantClient解压到某目录 3.打开PL/SQL,在perference里面设置OCI Library和Oracle_home,例子如下:        

javaEE:day2-servlet生命周期、提交解决中文乱码、tomcat加载jar包或类文件的顺序

servlet生命周期 生命周期简介: servlet在服务器第一次被请求的时候new出来,并初始化(即init())再调用service方法.这个实在服务器中new出来,然后用HashMap加的,与客户端无关.客户端之后访问只调用这个servlet的service方法. 具体分为4步: 1 构造方法 :服务器在被客户端第一次请求的时候运行 仅在服务器中运行一次 2 init方法:客户端第一次访问服务器的时候在服务器中进行初始化 仅一次.并且可以通过config参数在 web.xml中通过(ke

VS2013 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决办法 ZT

情景再现 使用VS2013新建ASP.NET MVC项目时,出现下面的错误: 具体错误信息: 错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”.有关此问题和如何启用此模板的详细信息,请参见有关“自定义项目模板”的文档. 分析错误 既然错误信息提示模板尝试加载组件程序集,那说明NuGet.VisualStudio.Inter

尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录

1公司电脑是win7 64位旗舰版,刚来时配的新电脑,4G+i5这个配置不装64位那算是浪费了.谁知道一切装完毕后,打开项目却连不上oracle数据了... 首先是pl/sql连不上,我在本地装了个oracle 11g r2 64位的.装了oracle服务器,应该是不用再装客户端,pl/sql应该就能连上的,应为oracle服务器版本自带了客户端的那些管理工具和功能.但是pl/sql一直报个错啊!大概意思是说找不到32位的oci.dll文件之类的错误,网上一搜,说pl/sql装在64位系统上,要

error C2504: 未定义基类

出错的情况为: type.h 文件中定义了一个结构体,但只给出了声明 namespace pcl { struct CSDDSignature; } 其定义在type.hpp文件中给出 namespace pcl { struct CSDDSignature { float histogram[111]; }; } 在do.h文件中使用该结构体时,只包含了type.h文件,此时报错:未定义基类 解决方法: 在do.h文件中使用文件外定义的结构体时,需要看到定义,不能只是声明. 此类错误在派生类的

VS2012 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决

VS2012 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决办法 2014 年 5 月 3 日作者:mingceng 阅读次数:13,78812评论 情景再现 使用VS2012新建ASP.NET MVC项目时,出现下面的错误: 具体错误信息: 错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyTok