博主信息
博文 24
粉丝 2
评论 5
访问量 24031
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
匿名函数、命名空间、类与对象的场景及使用--2019-9-29
木槿昔年的博客
原创
1012人浏览过

匿名函数、命名空间、类与对象的场景及使用

没有命名的函数叫匿名函数,PHP里面匿名函数也叫闭包函数,命名函数按名调用,匿名函数按值调用,将函数表达式赋值给变量。

匿名函数使用场景一:作为值来使用

实例

<?php
    //匿名函数,作为值来使用,变成一个语句,必须要以分号结尾
    $sum = function($a,$b){
        return $a+$b;
    };

    echo $sum(12,15);
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

匿名函数使用场景二:作为回调参数来使用

实例

<?php
   $arr = [3,1,6,2,9];
    //  usort 是数组排序函数
   usort($arr,function($a,$b){
       return $a-$b;
   });
  echo '<pre>'. print_r($arr,true).'</pre>';
   echo('<hr>');
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

匿名函数使用场景三:获取父作用域中的变量,闭包来使用

实例

<?php
    function func(){
        $email = 'example.@php.cn';
       return function() use ($email) {
            return $email;
        };
    }
    echo func()();
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例运行的结果

TIM截图20191007215003.jpg

PHP 命名空间(namespace),主要解决类名、函数名或变量名的命名冲突,命名空间必须是脚本的第一行代码,命名空间类似于文件目录结构,一个目录里不能有两个相同的文件夹或两个相同的文件,命名空间就可以解决这个问题;命名空间的应用对象,主要用在全局中的四类成员:函数、常量、类和接口。

实例

<?php
namespace one;
function func($a,$b){
    return $a+$b;
}

echo func(8,2);
echo '<hr>';

namespace two;
function func($a,$b){
    return $a-$b;
}

echo func(8,2);
echo '<hr>';

namespace three;
function func($a,$b){
    return $a*$b;
}

echo func(8,2);
echo '<hr>';

//运行的结果
//10
//6
//16
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

在同一个脚本中,定义了三个func函数,因为定义了三个命名空间,每个func函数只会调用自身命名空间的方法。

匿名函数、命名空间、类与对象的场景及使用

类与对象,类是对象的模板,对象是类的实例化。类由成员变量和成员函数(方法)组成。

实例

<?php
namespace mobile;

class mobile{
    public $product = '手机';
    public $price = 3000;
    public $model = 'huawei Mate30';

    public function name(){
        return $this->product;
    }
}

$obj = new mobile();
echo $obj->name();
echo '<br>';
echo '商品型号:'.$obj->model;

//运行结果
//手机
//商品型号:huawei Mate30
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

小结:匿名函数是一个函数,在赋值给一个变量后,就成了一个语句,后面要加上分号;, 命名空间可以防止重名,在调用当前命名空间的方法时使用 namespace\func() ;  访问另一个空间的函数要从根空间开始用反斜杠表示\ ; 命名空间的应用对象,函数、常量、类和接口。 类是变量与作用于这些变量的函数的集合,用关键字new来实例化,类和对象可以提高代码的复用。

批改状态:合格

老师批语:命名空间的适用对象, 非常重要
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学