博客列表 >函数作用域,静态变量,过滤器,常量的知识点

函数作用域,静态变量,过滤器,常量的知识点

樊天龙的博客
樊天龙的博客原创
2020年05月06日 04:19:31977浏览

函数作用域,静态变量,过滤器,常量的知识点

1.函数作用域

  • 全局变量要在函数中使用,要使用$GLOBALSglobal关键字
序号 分类 解释
1. 全局作用域 指不在函数的作用范围
2. 局部作用域 指在函数的作用范围
  1. <?php
  2. $siteName = 'PHP中文网';
  3. //超全局变量不受作用域限制,当前脚本的任何地方都能使用
  4. //全局变量自动注册为超全局变量$GLOBALS的一个值
  5. //超全局变量不需要赋值,不需要初始化
  6. function getInfo()
  7. {
  8. global $siteName;
  9. // return $siteName;
  10. return $GLOBALS['siteName'];
  11. }
  12. echo getInfo();
  13. echo '<br> ', $_SERVER['SCRIPT_NAME'];

2.静态变量

  1. <?php
  2. function sum()
  3. {
  4. // $total = 0;
  5. //静态变量,进行数据共享
  6. static $total = 0;
  7. $total++;
  8. return $total;
  9. }
  10. echo sum(), '<br>';
  11. echo sum(), '<br>';
  12. echo sum(), '<br>';
  13. /*
  14. 变量的本质是数据共享
  15. 函数的本质是代码共享
  16. */

3.过滤器

  1. <?php
  2. //变量过滤器,用来安全的过滤和获取数据
  3. foreach (filter_list() as $filter) {
  4. echo $filter, '===>', filter_id($filter), '<br>';
  5. }
  6. echo '<hr>';
  7. //变量的单一过滤
  8. //整数
  9. var_dump(filter_var(26, FILTER_VALIDATE_INT, ['options' => ['min_range' => 0, 'max_range' => 150]]));
  10. echo '<br>';
  11. //邮箱
  12. var_dump(filter_var('476300668@qq.com', FILTER_VALIDATE_EMAIL));
  13. echo '<br>';
  14. //真假
  15. var_dump(filter_var(true, FILTER_VALIDATE_BOOLEAN));
  16. echo '<br>';
  17. //浮点数
  18. var_dump(filter_var(3.14, FILTER_VALIDATE_FLOAT));
  19. echo '<br>';
  20. //url
  21. var_dump(filter_var('http://www.php.net', FILTER_VALIDATE_URL));
  22. echo '<br>';
  23. //ip
  24. var_dump(filter_var('127.0.0.1', FILTER_VALIDATE_IP));
  25. echo '<br>';
  26. //字符串
  27. var_dump(filter_var('string', FILTER_SANITIZE_STRING));
  28. echo '<br>';
  29. //过滤规则也可以用id表示
  30. var_dump(filter_var('476300668@qq.com', 517));
  31. echo '<br>';
  32. //多个变量过滤
  33. var_dump(filter_var_array([100, 'apple'], FILTER_VALIDATE_INT));
  34. echo '<br>';
  35. //查看是否有外部变量
  36. var_dump(filter_has_var(INPUT_GET, 'page'));
  37. echo '<br>';
  38. //过滤单一外部变量
  39. var_dump(filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, ['options' => ['min_range' => 0, 'max_range' => 100]]));
  40. echo '<br>';
  41. //过滤多个外部变量
  42. var_dump(filter_input_array(INPUT_GET, ['page' => FILTER_VALIDATE_INT, 'keywords' => FILTER_SANITIZE_STRING]));

4.常量

  1. <?php
  2. //系统常量
  3. //print_r(get_defined_constants());
  4. //分组打印系统常量
  5. //print_r(get_defined_constants(true));
  6. //创建常量
  7. define('APP_PATH', '/app/admin');
  8. print_r(get_defined_constants(true)['user']);
  9. echo '<br>', APP_PATH;
  10. //const创建常量
  11. const COUNTRY = 'China';
  12. echo '<br>', COUNTRY;
  13. //constant()也可以获取变量
  14. echo '<br>', constant('COUNTRY'), '<br>';
  15. //检测常量是否存在
  16. var_dump(defined('COUNTRY'));
  17. function test()
  18. {
  19. //函数中不可以使用const来定义常量
  20. // const A = 'a';
  21. }
  22. test();
  23. class Test
  24. {
  25. //类中不可以使用define()来定义常量
  26. //define('A','a');
  27. }
  1. <?php
  2. namespace name;
  3. //预定义常量
  4. echo 'PHP版本:', PHP_VERSION, '<br>';
  5. echo '最小整数:', PHP_INT_MIN, '<br>';
  6. echo '最大整数:', PHP_INT_MAX, '<br>';
  7. echo '最小浮点数:', PHP_FLOAT_MIN, '<br>';
  8. //魔术常量,也属于预定义常量,根据代码位置的不同,动态改变
  9. echo '当前行号:', __LINE__, '<br>';
  10. echo '完整的路径和文件名:', __FILE__, '<br>';
  11. echo '文件所在目录:', __DIR__, '<br>';
  12. function test()
  13. {
  14. return __FUNCTION__;
  15. }
  16. echo test(), '<br>';
  17. class Test
  18. {
  19. public function method()
  20. {
  21. return __METHOD__;
  22. }
  23. }
  24. echo (new Test)->method(), '<br>';
  25. echo __NAMESPACE__;

5.总结

  • 这些都是PHP的基础语法,而且在开发中也很常见
  • 只有打好基础,才能学好程序
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议