Correction status:qualified
Teacher's comments:命名空间, 就像你的固定电话的区号, 并没有什么神秘之处
space-a.php代码如下:
<?php // 注释可以有,还可以继续添加新的命名空间,其他任何东西都不能有! namespace userA{ function add($name){ echo '命名空间:" '.__NAMESPACE__.'"的函数名称:"'.__FUNCTION__.'"添加了名称a——'.$name; } } namespace articleA{ function add($name){ echo '命名空间:" '.__NAMESPACE__.'"的函数名称:"'.__FUNCTION__.'"添加了名称a——'.$name; } } namespace classA{ class nameA{ public $nameA_user = "类里面的变量"; public function nameAfun($id){ echo "我的手机号码——".$id; } } } namespace{ $strA = "这是A空间的变量"; include "space-b.php"; $strC = "这是A空间"; echo \userA\add('虎子爸爸'); echo "<br>"; echo \userB\add('虎子爸爸'); echo "<br>"; echo articleA\add('虎子爸爸的课题'); echo "<br>"; echo articleB\add('虎子爸爸的课题'); echo "<br>"; echo \userC\add('虎子爸爸'); echo "<br>"; echo articleC\add('虎子爸爸的课题'); echo "<br>"; echo "全局变量:".$strC; echo "<br>"; echo "全局变量:".$strA; echo "<br>"; echo (new \classA\nameA)->nameAfun('123456'); echo "<br>"; echo (new \classA\nameA)->nameA_user; echo "<br>"; echo (new \classB\nameB)->nameAfun('123456'); echo "<br>"; echo (new \classB\nameB)->nameA_user; } ?>
点击 "运行实例" 按钮查看在线实例
space-b.php
<?php namespace userB{ function add($name){ echo '命名空间:" '.__NAMESPACE__.'"的函数名称:"'.__FUNCTION__.'"添加了名称a——'.$name; } } namespace articleB{ function add($name){ echo '命名空间:" '.__NAMESPACE__.'"的函数名称:"'.__FUNCTION__.'"添加了名称a——'.$name; } } namespace classB{ class nameB{ public $nameA_user = "类里面的变量"; public function nameAfun($id){ echo "我的手机号码——".$id; } } } namespace{ include "space-c.php"; }
点击 "运行实例" 按钮查看在线实例
space-c.php的代码:
<?php namespace userC{ function add($name){ echo '命名空间:" '.__NAMESPACE__.'"的函数名称:"'.__FUNCTION__.'"添加了名称a——'.$name; } } namespace articleC{ function add($name){ return \userC\add('蒙牛'); } } namespace{ $strC = "这是space-c.php的一个变量!"; $strA = "这是C空间的变量值,这里就会出现所谓的空间污染"; } ?>
点击 "运行实例" 按钮查看在线实例
总结:
1、全局空间——简单理解就是space-a.php这个脚本文件
2、通过include “space-b.php”相当于把space-b.php,space-c.php 的小空间也纳入到了space-a.php这个脚本文件里面的全局大空间去了。
3、全局空间是相对的!空间最大的那个脚本文件就是全局空间,相当于根目录。
4、每个元素都是盒子!每个脚本也都是一个空间!
这样总结对不?