博客列表 >匿名函数使用场景及命名空间意义及类与对象关系-2019-9-29

匿名函数使用场景及命名空间意义及类与对象关系-2019-9-29

无聊了的博客
无聊了的博客原创
2019年09月30日 23:34:32676浏览

1. 自写案例演示匿名函数的三个应用场景

实例

<?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 前面不能有斜杠

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议