file01.php
<?php namespace my\box; class base { public function __construct() { echo __METHOD__.'<br />'; } } ?>
<?php include 'file01.php'; use my\box\base; $ns = 'my\box\base'; $obj = new $ns; ?>
当文件index.php中的变量$ns 写成 'base',在他下面new $ns;会报错找不到类base,但是如果说讲变量$ns的值写成限定名称 既:'my\box\base',这样还有什么意义吗?因为这样写了之后上面的use语句就没用了,不写use语句照样也能成功实例化类base。
你怎么又来了...
写use只是为了new的时候简化你写原始的类名
如果使用了动态名称相当于java的反射classloader,classloader是不管你use了什么东西,
它要求必须是类名的全称.
你的基础太差了吧...纠结这种毫无意义的问题有意思吗?
哦,看来是这样,使用了动态名称就不能使用别名了,因为既然动态名称要求是类名的全称,那么类名设置了别名的话就new不着动态名称重的类名了。谢谢啦朋友,虽然我令你无语了。。新年快乐。谢谢你的解答,我是差,我只是想知道为何写成例子那样的会找不到类,因为我并不知道这个动态名称是否重要,令我困惑的是,我看了一部分框架的代码并没有使用动态名称,所以我就越来越郁闷了。。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。