namespacephp
1. Thinkphp中命名空间是怎么做类文件引入的
thinkphp引入外部文件操作如下:
/*
类文件命名方式IDCheck.class.php
类文件里面注意要命名空间,,例如在Think文件夹下面,就要命名为namespace
Think;
*/
/*
控制器里面的写法:
引入方法:use
Think\IDCheck;
然后再实例化该类,实例化方法:$ID
=
new
IDCheck();
*/
2. php命名空间的引入问题 include namespace
include函数是引入文件
命名空间解决的是同一脚本下相同函数重名,不同的命名空间命名,相当于处于不同的模块,解决同一脚本下php函数重名的致命错误
你之前include引入的时候你的2个文件的相同函数处于不同命名空间下,就算在同一脚本也不会报错
看你最后段代码,你连续定义了2个命名空间,第1个就没用了,相当于你在namespace FooBarsubnamespace;命名空间下写了之后的代码,但是之后的代码处于namespace FooBarsubnamespace;下但是出现了2个相同名的函数,自然报错
你要区分命名空间和include就要先懂得他们代表的意思,从你的问题可以看出你不太懂命名空间,建议你网络或者看下php手册上的命名空间,自己捉摸比别人教理解得更加深刻
建议你把namespace FooBarsubnamespace;写到const FOO = 2;上面
3. php命名空间 use使用的问题:
命名空间是运行时解析的。use就相当于一种声明,并不解析和加载。在使用时就可以自动加载进来,那么这里你就可以理解为把db这个类库导入进来了,所以可以正常使用。
4. php 使用命名空间后,只能传递常量,无法传递变量,怎样才能传递变量呢
经过测试变量是全局的....
我这边测试可以 ..直接使用变量...
a.php
<?php
namespace n1;
$foo=1;
?>
b.php
<?php
namespace n2;
$foo=2;
?>
c.php
<?php
require "a.php";
require "b.php";
echo $foo;
?>
5. php命名空间的问题
php 的命令空间,和文件路径无关。只要你的 autoload 函数能自动载入正确文件就行。当然,你也可以手动载入
6. PHP命名空间的类没有发现问题,怎么解决
//main.php
namespace main;
require_once "util.php";
use cominstanceutil;
class Debug {
static function sayHello(){
print("Hello,".__NAMESPACE__." ");
}
}
Debug::sayHello();
utilDebug::sayHello();
7. 关于php命名空间,在不同的文件夹可以申明相同的根命名空间吗
可以的,使用命名空间PHP版本5.3以上
8. PHP命名空间动态调用类
不是这样调用的,命名空间只是一中命名的方式,跟调用没有直接联系。用auto_load()加载
9. php命名空间namespace \app为什么前面不能加\
使用的时候加\代表后面是“绝对路径的”命名空间
不使用/代表“相对路径的”命名空间
这是在使用的时候。
namespace xxx 是声明命名空间。命名空间名字自然不应该有\