Correction status:qualified
Teacher's comments:如果在关键字后面用空间, 一般是默认从全局开始, 可以省略\
<?php /* * 9月29日作业 1. 自写案例演示匿名函数的三个应用场景 2. 深刻理解全名空间的意义,并实例演示多个命名空间的场景 3. 实例演示类与对象的关系与使用方式 4. 总结命名空间的应用对象, 适用场景以及注意事项 */ header('Content-Type:text/html;charset=utf-8'); echo "<p style='color: red'>1、作为回调函数使用(排序函数内部使用)</p>"; $arr = [4,1,22,55,13]; usort($arr,function($a,$b){ return $a<$b; //注:大于号 正序 小于号 倒序 }); echo '<pre>'; print_r($arr); echo "<br><p style='color: red'>2、为变量赋值,使变量变成函数</p>"; $func = function(){ return '匿名函数赋值变量'; }; echo($func()) ; echo "<br><p style='color: red'>3、能够继承父级作用域的变量</p>"; $msg = 'world'; $example = function($param) use ($msg){ echo $param . ' ' .$msg; }; $param = 'hello'; $example($param);
点击 "运行实例" 按钮查看在线实例
2. 深刻理解全名空间的意义,并实例演示多个命名空间的场景
<?php namespace A; class test{ function demo(){ echo __CLASS__; } } $A = (new test)->demo(); echo '<br>'; namespace B; class test{ function demo(){ echo __CLASS__; } } $A = (new test)->demo(); echo '<br>'; namespace C; class test{ function demo(){ echo __CLASS__; } } $A = (new test)->demo();
点击 "运行实例" 按钮查看在线实例
3. 实例演示类与对象的关系与使用方式
<?php class test{ function get(){ } } $demo = new test(); echo $demo instanceof test ? "对象通过类产生,由 new+类 生成对象;内部非静态方法通过 -> 来调用" : '其它类';
点击 "运行实例" 按钮查看在线实例
4. 总结命名空间的应用对象, 适用场景以及注意事项
总结:
1、匿名函数创建时调用,用完即销毁,节省内存
2、匿名函数可以实现同步转异步
3、匿名函数可以防止函数名重复
4、命名空间可以防止类及方法等重名报错
5、当多个人开发多个模块时,避免不了类、方法等重名问题,需要引入命名空间,使用命名空间需要注意:
(1)前面不能有任何语句(除注释);
(2)用namespace 进行命名,引用必须是绝对命名空间 \A\B 错误 A 前面不能有斜杠