a.php
<?php namespace a\b; class Apple{ function get_info(){ echo 'aaa'.'<br/>'; } } ?>
b.php
<?php namespace c\d; class Apple{ function get_info(){ echo 'bbb'.'<br/>'; } } ?>
c.php
<?php class Apple{ function get_info(){ echo 'ccc'.'<br/>'; } } ?>
index.php
<?php require_once 'a.php'; require_once 'b.php'; require_once 'c.php'; //里面没有加命名空间,是顶层的全局类 /** * Fatal error: Cannot redeclare class Apple in D:\phpEnv\www\test\b.php on line 3 * 致命错误:不能重新声明Apple类 */ /** * 在a.php和b.php当中使用了namespace(命名空间之后)不会报错 * 备注:(只需在其中的一个中书写命名空间也可) */ use a\b\Apple; use c\d\Apple as newApple; //取别名的目的是避免错误冲突 $app_my=new a\b\Apple(); $app_my2=new c\d\Apple(); $app_my->get_info(); //输出:aaa $app_my2->get_info();//输出:bbb $app_my3=new Apple(); $app_my4=new Apple(); $app_my5=new Apple(); $app_my3->get_info(); //输出:aaa $app_my6=new newApple(); $app_my6->get_info(); //输出:bbb $app_my7=new \Apple(); //前面加上反斜杠是为了告诉程序,这个是处于顶层的命名空间(全局类) $app_my7->get_info(); //输出:ccc ?>