Php 使用父级和子级的名称空间自动加载类
我读了几篇关于在php中使用名称空间的文章,但我还没有理解。我有3个文件: script.php和dog.php位于同一根文件夹abstr中。类animals.php位于cls文件夹中,dog扩展了animals 资料来源:Php 使用父级和子级的名称空间自动加载类,php,namespaces,autoload,Php,Namespaces,Autoload,我读了几篇关于在php中使用名称空间的文章,但我还没有理解。我有3个文件: script.php和dog.php位于同一根文件夹abstr中。类animals.php位于cls文件夹中,dog扩展了animals 资料来源: cls/anives.php: namespace cls; abstract class Animals { .. } Dog.php(没有名称空间,因为它位于根文件夹中): script.php: function __autoload($cls){ $fi
cls/anives.php:
namespace cls;
abstract class Animals { .. }
Dog.php
(没有名称空间,因为它位于根文件夹中):
script.php
:
function __autoload($cls){
$file = str_replace('\\',DIRECTORY_SEPARATOR,$cls).".php";
if(file_exists($file)){
require_once $file;
} else {
throw new Exception("File not found: ".$file);
}
}
$dog = new Dog("German Shepard");
但是我得到了类动物的未找到异常
,并且$file
只是Animals.php
没有名称空间
\uu autoload
函数的路径中如果Dog不在“cls”命名空间中,则必须为Animals类编写完整的限定名:
class Dog extends \cls\Animals { ... }
class Dog extends \cls\Animals { ... }