批改状态:合格
老师批语:这是最经典的几个应用场景 , 实际上还可以用在更多的场景中
1. 自写案例演示匿名函数的三个应用场景
1.匿名函数, 做为值来使用
<?php
// 1.匿名函数, 做为值来使用
// 第一个场景
$sum = function ($a, $b) {
return $a + $b;
};
echo $sum(5,6);
echo '<hr>';
?>点击 "运行实例" 按钮查看在线实例
2.匿名函数: 做为回调参数来使用
<?php
// 2.匿名函数: 做为回调参数来使用
// 第二个场景
$arr = [3,1,6,2,9];
usort($arr, function ($a, $b){
return $a - $b; // 正序
// return $b - $a; // 逆序
});
echo '<pre>' .print_r($arr,true);
echo '<hr>';
?>点击 "运行实例" 按钮查看在线实例
3.1获取父作用域中的变量
<?php
// 3.1获取父作用域中的变量
// 第三个场景
$name = '欧阳克';
$f1 = function (){
// 直接获取外部变量,是取不到的
global $name;
return $name;
};
echo $f1();
echo '<hr>';
?>点击 "运行实例" 按钮查看在线实例
3.2获取父作用域中的变量第二种写法
<?php
// 3.2获取父作用域中的变量第二种写法
$name ='欧克费';
$f2 = function() use ($name){
return $name;
};
echo $f2();
?>点击 "运行实例" 按钮查看在线实例
<?php
// 3.2获取父作用域中的变量第二种写法
$name ='欧克费';
$f2 = function() use ($name){
return $name;
};
echo $f2();
?>点击 "运行实例" 按钮查看在线实例
2. 多个命名空间的场景
<?php
// 创建命名空与匿名空间(全局空间)
// 命名空间必须是脚本的第一行代码
namespace one
{
// 类是对象的模板
class Test
{
}
}
namespace two
{
class Test
{
}
}
namespace three
{
class Test
{
}
}
// 创建全局空间
namespace
{
class Test
{
}
}
?>点击 "运行实例" 按钮查看在线实例
3. 实例演示类与对象的关系与使用方式
<?php
class People{ }//这个是类
$obj1 = new People(); //类的实例化就是对象
$obj2 = new People();
$obj3 = new People();
var_dump($obj1);
echo '<br>';
var_dump($obj2);
echo '<br>';
var_dump($obj3);
echo '<br>';
var_dump($obj1 === $obj2);
var_dump($obj2 instanceof People);
?>点击 "运行实例" 按钮查看在线实例
4. 总结命名空间的应用对象, 适用场景以及注意事项
总结:1.解决全局成员的命名冲突问题
2.创建命名空间, 必须是脚本的第一行代码
应用对象-全局成员: 类 / 函数 / 常量 (接口也算一个吧)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号