目前的理解和疑惑如下:namespace的作用:命名空间为了解决重名问题,比如同事A.php里有classA,而同事B事先不知道A会使用什么类名,可能会重复.那么命名空间可以解决这问题.namespacensa里有classA,classA只能在当前命名空间下生效.use的作用就是在当前命名空间下使用其它命名空间下的类,比如在(index.php里的类Index)app\admin\controller命名空间里使用另一个(Db.php里有Db类)命名空间usethink\Db只知道这么用,但有些东西讲不清楚.usethink\Db=Db类的命名空间think+类名Db?框架里是这样用的,(这里的命名空间think经过tp的修改和简化)再推而广之,如果想在A.php,namespacensa,classA调用B.php,namespacensb,classB,就是usensb/B?需要先在A.php用include或require引入B.php吗?在网上找了很多人写的博客,但是我发现,因为这涉及到file_name,namespace_name,class_name,甚至path_name和directory_name.一些人在写文章时,这几个名字都取得稀巴烂像a,b,aa,bb,ab,导致描述也混乱,很容易产生歧义.所以先事先约定以下名称A.phpnamespacensa(要用多层级就namespacen/s/a)classAB.php,namespacensb(要用多层级就namespacem/t/b)classB现在简单的框架功能练习没什么问题,但是看源代码和练习复杂功能的代码时,面向对象和命名空间认识太浅,导致理解有些困难.还请大家帮忙分享下自己的经验.
相关分类