我想懒惰加载类但没有成功
<?php
class Employee{
function __autoload($class){
require_once($class);
}
function display(){
$obj = new employeeModel();
$obj->printSomthing();
}
}
Run Code Online (Sandbox Code Playgroud)
现在当我做这个
function display(){
require_once('emplpyeeModel.php');
$obj = new employeeModel();
$obj->printSomthing();
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理,但我想懒得加载这个类.
__autoload是一个独立的函数,而不是类的方法.您的代码应如下所示:
<?php
class Employee{
function display(){
$obj = new employeeModel();
$obj->printSomthing();
}
}
function __autoload($class) {
require_once($class.'.php');
}
function display(){
$obj = new Employee();
$obj->printSomthing();
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
从php手册中取的示例:
<?php
function __autoload($class_name) {
include $class_name . '.php';
}
$obj = new MyClass1();
$obj2 = new MyClass2();
?>
Run Code Online (Sandbox Code Playgroud)
Employee稍微改变一下:
class Employee {
public static function __autoload($class) {
//_once is not needed because this is only called once per class anyway,
//unless it fails.
require $class;
}
/* Other methods Omitted */
}
spl_autoload_register('Employee::__autoload');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4029 次 |
| 最近记录: |