我读了几篇关于在php中使用命名空间的文章,但我还没有得到它。我有3个文件:
script.php和dog.php位于相同的根文件夹中,abstr。 class animals.php位于cls文件夹中,dog延伸动物。
来源:
cls/Animals.php:
namespace cls;
abstract class Animals { .. }
Dog.php
(没有命名空间,因为它位于根文件夹中):
class Dog extends Animals {...}
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");
但是我为动物类获得Not found exception
而$file
只是Animals.php
没有命名空间......
有人能告诉我如何获取命名空间并将其包含在__autoload
函数的路径中吗?
或者为父母和孩子使用相同的命名空间是否更好?
正如我所理解的那样,名称空间=文件位置?
答案 0 :(得分:0)
如果Dog不在'cls'命名空间中,则必须为Animals类编写完整的限定名称:
class Dog extends \cls\Animals { ... }