博客列表 >匿名函数,命名空间,类与对象的关系--0929

匿名函数,命名空间,类与对象的关系--0929

琥珀的博客
琥珀的博客原创
2019年11月02日 12:41:11779浏览

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

实例

<?php
//匿名函数,函数表达式
$product =function($a,$b){
	return $a*$b;
};

//1.按值调用,值保存在$sum中
echo $product (3,6);
echo '<hr/>';

//回调函数:函数当做一个参数来使用的时候,这个函数叫做回调函数。 
//匿名函数作为回调参数使用
//arithmeti普通函数
function arithmetic($functionName, $m, $n) {
    return $functionName($m, $n);
}
//add作为回调函数
function add($m,$n){
    return $m+$n;
};
$result = arithmetic("add",4,6);
echo $result;

echo '<hr/>';
//3.获取父作用域的变量,当做闭包

function demo(){
	$name='小雷';  //$name为父函数变量
	return function()use($name){
		return $name;
	};
}

echo demo()();
?>

运行实例 »

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

1.jpg

二. 演示多个命名空间的场景

命名函数的意义:不同的php文件下面有相同的变量,命名空间可以把变量放进空间内,并且在其他空间内也是可以使用相同的变量。

inc文件夹function.php和demo2.php同样有f函数,要知道调用哪个,需要加上命名空间。

实例

<?php
namespace _0929;

function f($a, $b)
{
    return $a * $b;
}

运行实例 »

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

实例

<?php
namespace hello;


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

function f($a,$b){
	return $a+$b;
}
// \:全局空间,namespace当前空间
echo \hello\f(30,50);
echo '<br>';
echo namespace\f(30,50);

//访问另外一个空间的函数
echo '<hr>';
echo \_0929\f(20,30);

运行实例 »

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

image.png

三、 实例演示类与对象的关系与使用方式

类和对象的关系:1、类是对象的模版,对象是类的实例;2、一个类可以创建多个对象,每个对象都是独一无二的。

使用方式:1.先用class XX{} 声明类,里面赋予对象的属性。实例化一个类,然后可以调用它的属性值。

实例

<?php

namespace admin;

//类的声明:class
class phone
{
	//属性
	public $product='手机';
	public $price=2800;
}

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

echo '商品名称:'.$obj->product,'<br>';
echo '商品价格:'.$obj->price;

运行实例 »

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

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

命名空间的应用对象:命名空间可以防止类,函数,全局变量的重名。

命名空间的适用场景:当一个项目有多个文件,且那些文件有重复的函数命名时,利用命名空间可以访问另外一个文件的同名函数。

注意事项: 1.\:全局空间,注意在空间前加入"\"。2.即使语法允许,不要在一个文件中声明多个命名空间。

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