PHP如何看待类 - 仅在包含文件中?

joh*_*nny 2 php class

在PHP中只有在包含文件时才会看到类?在Java中,我可以在另一个文件中看到它们,而不在我当前的文件中包含该文件.在PHP中,查看任何给定类以将其包含在文件中的唯一方法是什么?所以我只是将我的类文件包含在各处?

Pek*_*ica 8

在PHP中只有在包含文件时才会看到类?

是.但是,在PHP 5中,有一个新的自动加载功能,允许您在调用类名时构建包含文件的函数.这实际上可以自动初始化类.

手册中的简单示例(我略微扩展)清楚地说明了这是如何工作的:

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();   // Autoloader will load "MyClass1.php" 
$obj2 = new MyClass2();   // Autoloader will load "MyClass2.php" 
?>
Run Code Online (Sandbox Code Playgroud)

像Zend Framework的Zend_Loader_Autoloader(以及标准PHP库spl_autoload_register(),欢呼@ircmaxell)等高级自动加载器甚至可以为不同的前缀添加不同的自动加载规则,允许从不同的目录加载库,具有不同的命名约定.