PHP 自动加载对象

如果定了很多类文件,在使用的时候常用的方法就是在文件包含这些类文件,但是如果类文件太多则是一个比较烦的事情,包含文件可能会写一坨

这里说一种常用的自动加载的方法

比如我们先定义一个类,文件名 a.php

[code lang=”php”]
<?php
class A{
private $var;

public function getVar()
{
return $this->var;
}

public function setVar($value=”)
{
$this->var = $value;
}
}
?>
[/code]
再定义另一个类文件c.php
[code lang=”php”]
<?php
class C{
function __toString(){
return "this is class C";
}
}
[/code]
然后在我们在 b.php 里使用自动加载方法
[code lang=”php”]
<?php
//先定义一个自动加载的function
function _autoload($class=”)
{
//简单演示,写的较简单
include_once(strtolower($class).".php");
}
//然后将函数注册到SPL __autoload函数栈中
spl_autoload_register(‘_autoload’);
$b = new A();
$b->setVar("have fun");
echo $b->getVar();//have fun

$b = new C();
echo $b;//this is a class C
[/code]

自动加载函数的名字是可以换的,比如

[code lang=”php”]
<?php
function example($class=”)
{
include_once(strtolower($class).".php");
}
spl_autoload_register(‘example’);
$b = new A();
$b->setVar("have a fun");
echo $b->getVar();//have a fun

$b = new C();
echo $b;//this is a class C
[/code]

文档里都有介绍,偶没深入写,若拍请轻拍

Published by

2 thoughts on “PHP 自动加载对象”

Leave a Reply

Your email address will not be published. Required fields are marked *