博客列表 >匿名函数/命名空间/类与对象

匿名函数/命名空间/类与对象

庆选的博客
庆选的博客原创
2019年10月10日 00:04:44728浏览

1、匿名函数

匿名函数:允许在声明函数时,不用书写函数名的函数。即是允许指定一个没有名称的函数。把匿名函数赋值给变量,通过变量来调用。

范例:

使用场景1:匿名函数对赋值给变量,通过变量来调用

 

实例

<?php


$a='***是中国的11';
$f1=function()use($a){
    return $a;
};
echo $f1();
echo '<hr>';

$f1=function($a){
    return $a;
};
echo $f1('你好中国');
echo '<hr>';

运行实例 »

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

1.png

场景2:通过在函数内调用匿名函数 实现简单的闭包

实例

<?php


function seek()
{
    $f2=function (){
        echo "世界还是那个世界,但中国不是那个中国了";
    };
    return $f2();

}
seek();

运行实例 »

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

1.png


场景3:通过关键词use($a)调用父域下参数$a 

实例

function seek1()
{
    $a="世界还是那个世界,但中国不是那个中国了2";
    $f2=function ()use($a){
        echo $a;
    };
    return $f2();

}
seek1();

运行实例 »

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

1.png


场景4:给匿名函数传参时,

处理:需要将普通函数赋值变量中,变量带参数,进而将变量传入匿名函数中

(备注:普通函数中没有参数声明,匿名函数中带参数声明)

实例

function seek2()
{
    $a="阿中";
    $f2=function ($b,$c)use($a){
        echo $a.'您好,'.$b.','.$c."一起守护它";
    };
    return $f2;

}
$f3=seek2();
echo '匿名函数传参:<br>';
$f3('你','我');

运行实例 »

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

1.png

2、命名空间:

样式:在php文件开头处命名(脚本的第一行代码
)。关键词:namespace

命名空间的意义:主要避免同名函数导致的报错,其次在于定位引用对应文件内的方法(保证唯一性)

访问时:

引用本方法内函数:namespace\方法名();

引用本文件下其他文件内方法:\引入文件内定义空间名\方法名();

实例

<?php
namespace hello;

include __DIR__ . '/inc/function.php';

function sum($a, $b)
{
    return $a + $b;
}

// \: 全局空间 即是namespace文件下全局下空间
echo namespace\sum(20, 30);
echo '<hr>';
// 访问 include __DIR__ . '/inc/function.php'中文件另外一个空间中的函数
echo \_929\sum(25, 6);

运行实例 »

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

3. 实例演示类与对象的关系与使用方式

实例

<?php
class Demo
{
    
    public $product = '手机';
    public $price = 2800;
}

//实例化类
$obj = new Demo();

//对类中成员属性进行操作 $obj->product='手机22';
$obj->product='手机22';
$obj->price='22';

// 2. 访问类中成员,用对象访问  $obj->product
echo '商品名称: ' . $obj->product, '<br>';
echo '商品价格: ' . $obj->price;

运行实例 »

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

4、总结命名空间的应用对象, 适用场景以及注意事项

1、命名空间需要放置在文件开头 第一行代码

2、命名空间的意义避免引入文件存在相同函数名导致报错,同是方便引用特定文件的方法。

 

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