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.创建命名空间, 必须是脚本的第一行代码
应用对象-全局成员: 类 / 函数 / 常量 (接口也算一个吧)