php命名空间

来源:互联网 发布:屹然不动而远乎 编辑:程序博客网 时间:2024/06/05 03:12
<?phpnamespace MissZhou;function var_dump($a=1){echo "加油啊";}var_dump();\var_dump(1);

\表示调用全局

解决常量的冲突问题 有点像子目录的概念

namespace meizi;//必须放第一行include "func.inc.php";function one() {echo "aaaaaaaaaaaaa<br>";}function two() {echo "bbbbbbbbbbbbbbb<br>";}one();\one();define("meizi/ROOT", "9999999999999");
<?php/* *  命名空间 --- 名子空间 * * * 1. 常量 * 2. 函数 * 3. 类 * * * 一、 namespace 来声明 * 二、 在namespace声明命名空间的代码上面,不能有任何PHP代码和HTML内容输出(除了declare ), 声明命名空间只能是第一条 *///declare(encoding="utf-8");//声明一个名子空间, 前缀为 meizinamespace  meizi\pl;const AAA = 1;class Demo {static function one() {echo "11111111111<br>";}}function test() {echo "222222222222222<br>";}test();\meizi\pl\test();echo AAA."<br>";echo \meizi\pl\AAA."<br>";Demo::one();\meizi\pl\Demo::one();
<?php/* *  命名空间 --- 名子空间 * * * 1. 常量 * 2. 函数 * 3. 类 * * * 一、 namespace 来声明 * 二、 在namespace声明命名空间的代码上面,不能有任何PHP代码和HTML内容输出(除了declare ), 声明命名空间只能是第一条 * 三、定义多个名子空间,以最后一个为主 *四、在实际的编程实践中,非常不提倡在同一个文件中定义多个命名空间。 (不要在大括号外部加任何代码) *///declare(encoding="utf-8");//声明一个名子空间, 前缀为 meizinamespace hello\world {const AAA = 1;class Demo {static function one() {echo "11111111111<br>";}}function test() {echo "222222222222222<br>";}test();\hello\world\test();echo AAA."<br>";echo \hello\world\AAA."<br>";Demo::one();\hello\world\Demo::one();}$a = 10;namespace  meizi\pl {const BBB = 2;echo BBB."<br>";echo \meizi\pl\BBB."<br>";echo \hello\world\AAA."<br>";}namespace {\var_dump(100);}

动态输出:

<?phpnamespace MissZhou;function demo(){echo "努力啊少女";}$fun="MissZhou\demo";$fun();
类 常量同理

我们想到了一个没讲的魔术常量

<?phpnamespace MissZhou;function demo(){echo "努力啊少女";}$fun="MissZhou\demo";$fun();echo __NAMESPACE__;
作用

<?phpnamespace MissZhou;function demo(){echo "努力啊少女";}$fun=__NAMESPACE__."\demo";$fun();echo __NAMESPACE__;

再介绍一个操作符namespace等价于self::

好长啊啊 取别名吧

<?phpnamespace MissZhou\zyj\fighting;//一般用公司域名的倒写 貌似html课程讲过==use MissZhou\zyj\fighting as wuli;function demo(){echo "努力啊少女";}wuli\demo();

还有一个问题,php调用类的时候,如果当前文件里面没有,不会自动找全局!(但是很纠结的是如果定义的时候不写,定义在全局)如何解决?不想写了,偷张图吧


use只能导入类,不能导入常量和函数



0 0