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

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

木槿昔年的博客
木槿昔年的博客原创
2019年10月07日 23:51:07757浏览

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

没有命名的函数叫匿名函数,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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议