批改状态:合格
老师批语:namespace 现在几乎只用来声明命名空间了, 当成空间引用并不多
自写案例演示匿名函数的三个应用场景
<?php
// ***匿名函数只能调用一次
// 匿名函数的应用场景
// 1、将匿名函数作为一个值赋给另一个变量
$sum = function($a,$b){
return $a*$b;
};
// 按值调用
echo $sum(3,5);
echo '<hr>';
// 2、将匿名函数作为另一个函数的变量进行调用(回调)
$arry = [1,53,6,7,8];
usort($arry,function($a,$b){
return $a-$b;
});
echo '<pre>' . print_r($arry,true);
echo '<hr>';
// 3、获取父作用域中的变量(eg.在子函数中调用父函数中变量)
function task(){
$email = 'Reid@php.cn';
return function()use($email){
return $email;
};
}
echo task()();
?>点击 "运行实例" 按钮查看在线实例
运行结果:

深刻理解全名空间的意义,并实例演示多个命名空间的场景
<?php
namespace _0929task2
{
function func($a,$b){
return $a*$b;
}
}
namespace _0929test
{
function func($a,$b){
return $a + $b;
}
}
namespace{
// include __DIR__ . '../tset.php';
echo _0929test\func(3,4);
// echo '<hr>';
// echo \_0929\func(4,5);
echo '<hr>';
echo _0929task2\func(2,5);
}点击 "运行实例" 按钮查看在线实例
运行结果:

实例演示类与对象的关系与使用方式
<?php
namespace _0929task3;
class db{
public $dsn='mysql:host:127.0.0.1;dbname:video';
public $user='root';
public $pwd='root';
public function connection(){
// ...
}
}
$db=new db();
echo $db->dsn.'<br>';
echo $db->user.'<br>';
echo $db->pwd.'<br>';点击 "运行实例" 按钮查看在线实例

类与对象之间的关系:类是对象的抽象模板,类中的属性和方法需要通过创建对象实例来访问。
总结命名空间的应用对象, 适用场景以及注意事项
命名控制的主要目的是为了减少在项目中命名的重复和名称的长度,应用对象主要包括:函数、常量、类和接口四种。
注意事项:在同一个脚本文件中尽量只有一个命名空间,如需多个可以外部引用;命名空间和全局空间同时使用时需
要讲命名空间的内容用花括号包起来,用namespace关键字来声明一个匿名空间(即全局空间),namespace关键字
既能用来声明命名空间也能表示当前命名空间。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号