当我们写PHP顺序时,会发现由于具有一个雷同称号的类或要领,而使顺序将失利。然则经由过程PHP中的定名空间能够协助我们处理代码争执题目,接下来在文章中将和人人细致引见怎样运用定名空间代码
【引荐课程:PHP教程】
以下示例中有两个文件,一个Demo.php,一个index.php,两个文件处于同级目录下;Demo.php文件中誊写定名空间以及Demo类,index.php挪用Demo.php中的Demo类;以下示例中的“输出效果”即示意浏览器接见index.php。
Demo.php文件代码
<?php namespace DemoNameSpace; class Demo { private $mysqlHandle; public function __construct() { echo 'This is namespace of PHP demo ,The Demo magic constant "__NAMESPACE__" is '.__NAMESPACE__; } } ?>
index.php文件代码
<?php include 'Demo.php'; use DemoNameSpace\Demo; $DemoObj = new Demo(); ?>
输出效果:
“This is namespace of PHP demo ,The Demo magic constant "__NAMESPACE__" is DemoNameSpace”
以上示例的申明:Demo.php中有一个_NAMESPACE__魔法常量;“它包括当前定名空间称号的字符串。在全局的,不包括在任何定名空间中的代码,它包括一个空的字符串。”
Demo.php不做更改,修改index.php文件
<?php include 'Demo.php'; $Demo = new Demo(); ?>
输出效果:
“Fatal error: Class 'Demo' not found in F:\JJserver\demo\index.php on line 4”
这个是罕见的“致命毛病”信息了。根据通例的php编程思绪,这里的输出应该是跟上面的输出效果是一致的,但这里它偏要来个致命毛病。然则当我们去掉(或解释掉)Demo.php文件中的:“namespace DemoNameSpace;”这个语句就一般了。这是我们寻常写class以及挪用class最罕见的誊写要领。
总结:
对照运用namespace与不运用namespace的两种输出状况,并到场namespace的定义明白后,上述涌现致命毛病的状况就很好明白了。在Demo.php中定义了一个namespace,也就是定名空间后,接着定义了Demo类,然后这个Demo类就被合并到了DemoNameSpace定名空间中去了,那末要挪用这个Demo类时,天然要先挪用这个DemoNameSpace定名空间了,也就是在index.php文件中运用“useDemoNameSpace\Demo”语句了
【相干引荐:PHP中的定名空间是什么】
以上就是怎样运用PHP中的定名空间的细致内容,更多请关注ki4网别的相干文章!