对于php中命名空间的质疑

ziluopao 发布于 2016/03/31 14:57
阅读 429
收藏 0
PHP

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决

上面这个是php对于命名空间功能的解释。目的就是为了解释类或函数的命字重复。

但我有一个疑惑是,非要用命名空间才能解决吗。

比如我在a和b两个文件夹下建了两个脚本文件名称都相同的c.php;此时我在这两个脚本中写相同的类名或函数,调用路径正确时怎么会出错呢?因为虽然名称相同,但是调用路径不同,作用域也不同,即使类和函数名都相同也不发生冲突!真不知道发明这个命名空间的意义在哪里?

加载中
0
潇洒非常
潇洒非常

php的引入机制(include、require)和其它语言如java是不太一样的。

include、require相当于把这个文件的代码全部载入进来,合并成一个代码文件。这样你就理解为什么不能有同名函数了。

但是引入命名空间就对这个做了区分。

0
南湖船老大
南湖船老大

比如我在a和b两个文件夹下建了两个脚本文件名称都相同的c.php;此时我在这两个脚本中写相同的类名或函数,调用路径正确时怎么会出错呢?

ARE YOU SURE?


0
金拱门
金拱门

你的班级里面有 两个 张三。

老师上课点名:“张三” 。那么到底是那个张三 喊到呢?

0
雪梨苹果
雪梨苹果

。。。php不像其他语言,就是include多个文件,同一层的东西都是会互相污染。。。。

引入命名空间,其实就是模拟其他语言的import和package。。。

0
风吹响的号角
风吹响的号角
如果一个文件d.php,即要require a文件夹中的c.php,也要require b文件夹中的c.php,如果有相同的类名能不报错?如果函数名相同能知道调用哪个函数?
0
Narky
Narky

一班和二班都有个同学叫“张三”,有一天两个班合在一起举行茶话会,老师喊:“张三,你来把这个蛋糕分给你们班;张三,这箱苹果分给你们班”,请问,是一班的张三分蛋糕还是二班的张三分苹果?

如果老师喊:“一班的张三(Class1\Zhangsan)蛋糕分给你们班,二班的张三(Class2\Zhangsan)苹果拿走分了“,这样大家就很清楚了

0
ziluopao
ziluopao

引用来自“开源中国首席骨科主任”的评论

你的班级里面有 两个 张三。

老师上课点名:“张三” 。那么到底是那个张三 喊到呢?

你为啥不把班说出来呢,比如一年级一班张三,和二年级二班李三。假如人们可以在一点向全世界说张三,那不更麻烦了,这就象坐标,立体空间中的一点,必须要有三个点才能确实,你非要用二点确实立体空间中的一点,那当然不行了。
0
ziluopao
ziluopao

引用来自“蒋贻华”的评论

如果一个文件d.php,即要require a文件夹中的c.php,也要require b文件夹中的c.php,如果有相同的类名能不报错?如果函数名相同能知道调用哪个函数?
所以你要写绝对路径啊!你把路径写全了,为啥找不到呢?
风吹响的号角
风吹响的号角
你用require或include引入文件的时候就报fatal错误了,不先引入怎么调用类?
0
ziluopao
ziluopao

引用来自“Narky”的评论

一班和二班都有个同学叫“张三”,有一天两个班合在一起举行茶话会,老师喊:“张三,你来把这个蛋糕分给你们班;张三,这箱苹果分给你们班”,请问,是一班的张三分蛋糕还是二班的张三分苹果?

如果老师喊:“一班的张三(Class1\Zhangsan)蛋糕分给你们班,二班的张三(Class2\Zhangsan)苹果拿走分了“,这样大家就很清楚了

你所说的

如果老师喊:“一班的张三(Class1\Zhangsan)蛋糕分给你们班,二班的张三(Class2\Zhangsan)苹果拿走分了“,这样大家就很清楚了

就是我在一楼说的意思啊,就是因为这个我才感觉命名空间存在的意义不大!

潇洒非常
潇洒非常
这个比喻挺形象的
0
金拱门
金拱门

引用来自“开源中国首席骨科主任”的评论

你的班级里面有 两个 张三。

老师上课点名:“张三” 。那么到底是那个张三 喊到呢?

引用来自“ziluopao”的评论

你为啥不把班说出来呢,比如一年级一班张三,和二年级二班李三。假如人们可以在一点向全世界说张三,那不更麻烦了,这就象坐标,立体空间中的一点,必须要有三个点才能确实,你非要用二点确实立体空间中的一点,那当然不行了。
我是说在同一个班级里面……  。 不是年级。。。还有,你要这么理解我也醉了。不要钻牛角尖
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部