1. <?php
  2. // 静态变量:实现函数在多次调用的过程中共享数据
  3. namespace ns3;
  4. function test(){
  5. static $sum = 0;
  6. $sum = $sum+1;
  7. return $sum;
  8. }
  9. echo test(),'<br>';
  10. echo test(),'<br>';
  11. echo test(),'<br>';
  12. // 变量过滤器
  13. foreach( filter_list() as $filter){
  14. echo $filter.' ==>'.filter_id($filter).'<br>';
  15. }
  16. echo '<hr>';
  17. // 过滤单个变量filter_var()
  18. // 年龄
  19. $age = 30;
  20. var_dump(filter_var($age, FILTER_VALIDATE_INT,['options'=>['min_range'=>18,'max_range'=>60]]));
  21. echo '<hr>';
  22. // 过滤多个变量filter_var_array()
  23. var_dump(filter_var_array([100, 'php'], FILTER_VALIDATE_INT));
  24. echo '<hr>';
  25. // 检测外部变量, filter_has_var()
  26. var_dump(filter_has_var(INPUT_GET, 'page'));
  27. echo '<hr>';
  28. // 访问外部变量的过滤器,filter_input
  29. var_dump(filter_input(INPUT_GET, 'p',FILTER_VALIDATE_INT, ['options'=>['min_range'=>1]]));
  30. echo '<hr>';
  31. // 验证多个外部变量: filter_input_array()
  32. $args = [
  33. 'username' => FILTER_SANITIZE_STRING,
  34. 'email' => FILTER_VALIDATE_EMAIL,
  35. 'age' => ['filter' => FILTER_VALIDATE_INT, 'flags'=>FILTER_REQUIRE_SCALAR, 'options' => ['min_range' => 18]],
  36. 'blog' => FILTER_VALIDATE_URL,
  37. ];

总结:
1、变量的本质是数据共享;函数的本质是代码共享。
2、静态变量实现函数在多次调用中共享数据。
3、变量过滤器:实现比如表单输入数据的验证。
过滤单个变量filter_var()
过滤多个变量filter_var_array()
检测外部变量, filter_has_var()
访问外部变量的过滤器,filter_input()
验证多个外部变量: filter_input_array()
4、常量不受作用域限制
5、流程控制中,define能用, const不能用
6、常量通常只允许用标量进行初始化
标量: 单值变量, 字符串, 数值,布尔, null

posted on 2020-04-19 15:19  林口  阅读(127)  评论(0编辑  收藏  举报