当前位置: 首页 > 后端技术 > PHP

PHP命名空间学习(一)

时间:2023-03-29 22:01:47 PHP

1.什么是名称空间?文件foo.txt可以同时存在于/home/greg和/home/other目录中,但两个foo.txt文件不能存在于同一目录中。另外,访问/home/greg目录外的foo.txt文件时,必须在文件名前加上目录名和目录分隔符,才能得到/home/greg/foo.txt。这就是命名空间,它的作用是为了区分不同目录下的同一个文件,或者同一个方法。详细说明:1.用户编写的代码与PHP内部类/函数/常量或第三方类/函数/常量的名称冲突。2.为很长的标识符名称(通常定义为缓解第一类问题)创建别名(或简称),提高源代码的可读性。2、PHP支持命名空间php>=5.3.0支持命名空间3、命名空间关键字PHP支持两种访问当前命名空间内部元素的抽象方法:__NAMESPACE__魔法常量命名空间关键字例如:namespacetest;回声__NAMESPACE__;输出:test4。命名空间测试的简单示例;define('test\HELLO','helloworld!');define(__NAMESPACE__.'\GOODBYE','goodbyecruelworld');define('GOODBYE','hahahha');echoHELLO;echo'
';echoGOODBYE;echo'
';echo\GOODBYE;echo'
';echo\test\GOODBYE;echo'
';echotest\GOODBYE;//致命错误:Undefinedconstant'test\test\GOODBYE'in/mnt/hgfs/www/test/test.phponline16//找不到测试,所以在它前面加上\表示当前测试结果5.调用命名空间namespacetest;namespacehome;classmao{publicfunction__construct(){}/***echo*/publicfunctionmao_test(){echo'hellomynamespacetest';}}usehome\maoashaha??h;$obj=newhaha??h();$obj->mao_test();结果6.多个命名空间引用test.phpnamespacehome;classmao{publicfunction__construct(){}/***回声*/publicfunctionmao_test(){echo'你好我的命名空间测试';}}namespacehome2;classmao{publicfunction__construct(){}/***echo*/publicfunctionmao_test(){echo'hellomynamespacetest2';}}index.phpnamespacetest;require_once('test.php');使用home\mao作为java;$obj=newjava();$obj->mao_test();echo'
';usehome2\maoashah;$obj=newhah();$obj->mao_test();结果