<?php namespace 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"); //声明一个名子空间, 前缀为 meizi namespace 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"); //声明一个名子空间, 前缀为 meizi namespace 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); }
<?php namespace MissZhou; function demo(){ echo "努力啊少女"; } $fun="MissZhou\demo"; $fun();类 常量同理
我们想到了一个没讲的魔术常量
<?php namespace MissZhou; function demo(){ echo "努力啊少女"; } $fun="MissZhou\demo"; $fun(); echo __NAMESPACE__;作用
<?php namespace MissZhou; function demo(){ echo "努力啊少女"; } $fun=__NAMESPACE__."\demo"; $fun(); echo __NAMESPACE__;
好长啊啊 取别名吧
<?php namespace MissZhou\zyj\fighting;//一般用公司域名的倒写 貌似html课程讲过== use MissZhou\zyj\fighting as wuli; function demo(){ echo "努力啊少女"; } wuli\demo();
use只能导入类,不能导入常量和函数