今天所学心得、笔记

示例代码截图

1、函数的作用域

  1. $studentName = "小明";
  2. $score = 85;
  3. //由于作用域不同,函数内无法访问外部变量
  4. function demo1(): string {
  5. $res = '';
  6. return $res .= '学生姓名 : ' . $studentName. '------学生成绩 = ' . $score.'<br>';
  7. }
  8. echo demo1();
  9. //使用global关键字申明全局变量,使用$GLOBALS超全局数组,变为全局变量
  10. function demo2(): string {
  11. $res = '';
  12. global $studentName;
  13. return $res .= '学生姓名 : ' . $studentName. '------学生成绩 = ' . $GLOBALS['score'].'<br>';
  14. }
  15. echo demo2();
  16. //使用闭包访问外部函数
  17. $demo3 = function() use ($studentName, $score): string {
  18. $res = '';
  19. return $res .= '学生姓名 : ' . $studentName. '------学生成绩 = ' . $score .'<br>';
  20. };
  21. echo $demo3();

示例代码截图

2、使用回调、函数的返回值, 多值

  1. function demo4(string $myName): string {
  2. return "大家好,我是{$myName},请大家关照...";
  3. // return sprintf("大家好,我是%s,请大家关照...", $myName);
  4. }
  5. echo call_user_func_array('demo4',['小明']);
  6. echo '<br>';
  7. // 异步函数, 调用数据库
  8. $sql = 'SELECT * FROM `bk_cate` LIMIT 1';
  9. $demo5 = function ($dsn, $username, $password) use ($sql) {
  10. $pdo = new PDO($dsn, $username, $password);
  11. $stmt = $pdo->prepare($sql);
  12. $stmt->execute();
  13. return $stmt->fetchAll(PDO::FETCH_ASSOC);
  14. };
  15. $res = call_user_func_array($demo5, ['mysql:dbname=bick','root','zdm12345678']);
  16. print_r($res);
  17. echo '<br>';
  18. // 异步函数, 调用对象方法
  19. class Students {
  20. // 实例方法
  21. public function read(string $book): string {
  22. return "学生们正在读{$book}方面的书籍...";
  23. }
  24. // 静态方法: 类调用
  25. public static function run(string $site): string {
  26. return "学生们正在{$site}跑步...";
  27. }
  28. }
  29. // 调用实例方法
  30. //数组
  31. $res = call_user_func_array([new Students, 'read'], ['科学研究']);
  32. echo $res; echo '<br>';
  33. $res = call_user_func_array('Students::run', ['田径场']);
  34. echo $res;
  35. echo '<hr>';
  36. // 函数的返回值, 多值
  37. //数组
  38. function demo6(): array {
  39. return ['username' => 'tom', 'password' => '12345678'];
  40. }
  41. var_dump(demo6());
  42. echo '<br>';
  43. // 对象
  44. function demo7() : object
  45. {
  46. // 匿名类
  47. return new class ()
  48. {
  49. public $username = 'tom';
  50. public $password = '12345678';
  51. };
  52. }
  53. $res = demo7();
  54. echo $res->username, '------' ,$res->password;

示例代码截图

3、序列化

  1. //PHP专用序列化函数
  2. function demo8(): string {
  3. return serialize(['username' => 'tom', 'password' => '壹贰叁肆伍陆柒捌']);
  4. }
  5. echo demo8(); echo '<br>';
  6. // PHP专用函数, 反序列化
  7. var_dump(unserialize(demo8()));
  8. echo '<br>';
  9. //序列化,通用的json格式的字符串
  10. //使用JSON_UNESCAPED_UNICODE参数,使序列化后显示汉字
  11. function demo9(): string {
  12. return json_encode(['username' => 'tom', 'password' => '壹贰叁肆伍陆柒捌'],JSON_UNESCAPED_UNICODE);
  13. }
  14. echo demo9(); echo '<br>';
  15. //反序列化,json格式的字符串
  16. // 默认将外部的json解析成object对象类型
  17. var_dump(json_decode(demo9())); echo '<br>';
  18. // 给 json_decode()传入第二个参数 : true,也可以使用数组方式
  19. var_dump(json_decode(demo9(), true));

更多相关文章

  1. 2021-02-15:给定一个整型数组arr,代表数值不同的纸牌排成一条线。
  2. 事件与常用函数
  3. 第3章 0127-常用运算与流程控制,学心得、笔记(表达式、三元运算与n
  4. FM实现F4帮助系列一:常规实现
  5. 实际测试内存在顺序IO和随机IO时的访问延时差异
  6. C语言 12.0
  7. 函数递归作业详解(C语言)
  8. 0128- 实例演示函数作用域与闭包,回调的使用场景与参数调用
  9. “重定义;不同的基类型”,可能是顺序问题

随机推荐

  1. Android手机重启的核心代码
  2. 怎么访问android 网站
  3. Android studio 导入项目出现:Failed to c
  4. 设置Textview最大长度,超出显示省略号
  5. android完全退出应用程序
  6. 【Android】编译CM10.1遇到的错误解决方
  7. android中的wife
  8. PeerDroid
  9. Android斗地主源码实现
  10. RelativeLayout相关属性