Blogger Information
Blog 9
fans 0
comment 5
visits 10241
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1118 关于PHP常量的总结以及变量过滤器的使用
酒淋后
Original
716 people have browsed it

关于PHP常量的总结以及变量过滤器的使用

一、PHP常量的总结

预定义常量

  • 查看php版本号:PHP_version
  • 查看当前操作系统:PHP_OS_FAMILY
  • 环境变量的目录列表的分隔符:PATH_SEPARATOR
  • 目录分隔符:directory_separator
  • PHP这门语言最大的整数:PHP_int_max
  • PHP这门语言最大的浮点数:PHP—float_max

魔术常量

__function__;

__function__;

__line__;

__namespace__

1、特点:

  • 常量必须初始化赋值;
  • 常量不能重新被定义或者取消定义;
  • 常量不受作用域的限制,具有超全局作用域;;

2、常量的定义:

2.1 define函数方法定义常量:

语法:

  1. define(常量名,值,是否对大小写敏感);

2.2 const定义常量;

语法:

  1. const 变量名=值;

3、注意事项:

  • define函数的第三个参数是否大小写敏感,系统默认是false;

  • define 可以放入条件分支语句中,而const不可以放入;

二、变量过滤器的使用

变量过滤器有什么用?

我们做web应用程序需要对用户输入的数据进行判断,比如我们需要用户输入的年龄是18岁,但是用户给我来一个十八岁,很显然,前面的这个18是是整型,而后面这个十八是字符型,这个时候我们就需要系统去做判断,这个时候就可以使用变量过滤器进行过滤判断,确保用户输入的数据是合法的程序员需要的(当然其他方法也是有的,这里只是举个例子)。

过滤器函数:

使用下面代码可以遍历出系统提供的过滤器:
  1. foreach(filter_list() as $filter)
  2. {
  3. echo $filter ."=>".filter_id($filter)."<br>";
  4. }
filter_var() :通过一个指定的过滤器来过滤单一的变量
  1. `filter_var(变量名,过滤器名称);`
代码举例:
  1. $int = 18;
  2. if(!filter_var($int, FILTER_VALIDATE_INT)){
  3. echo("不是整型");
  4. }else{
  5. echo("是整型");
  6. }
  7. 输出结果:是整型
filter_var_array() :通过相同的或不同的过滤器来过滤多个变量

语法:filter_var_array(array,args)

参数 描述
array 必需的,带有字符串的数组,包含要过滤的数据
args 可选的,合法的数组键是变量名。合法的值是过滤器ID,或者规定过滤器,标志以及选项的数组。该参数也可以是一个单独的过滤器ID,如果是这样,输入数组中的所有值由指定过滤器进行过滤。

举例:

  1. <?php
  2. $arr = array
  3. (
  4. "username" => "jiulinghou",
  5. "age" => "18",
  6. "email" => "123456@qq.com",
  7. );
  8. // 过滤
  9. $filters = array
  10. (
  11. "username" => array
  12. (
  13. "filter" =>FILTER_CALLBACK, // FILTER_CALLBACK 过滤器使用用户自定义函数对值进行过滤。
  14. "flags" =>FILTER_FORCE_ARRAY,
  15. "options" => "ucwords" // ucwords 函数 每个单词的首字符转换为大写
  16. ),
  17. "age" =>array
  18. (
  19. "filter" =>FILTER_VALIDATE_INT, // 过滤 age 的值是否为整型
  20. "options" => array
  21. (
  22. "min_range" =>1,
  23. "max_range" =>120 //范围限制在 1~120 之间
  24. )
  25. ),
  26. "email" => FILTER_VALIDATE_EMAIL, //过滤 email
  27. );
  28. print_r(filter_var_array($arr, $filters));
  29. // Array ( [username] => Jiulinghou [age] => 18 [email] => 123456@qq.com )
  30. // 以上 email 如果不是一个正确的 email 那么输出结果为:Array ( [username] => Jiulinghou [age] => 18 [email] => )
filter_input :获取一个输入变量,并对它进行过滤

定义和用法

filter_input() 函数从脚本外部获取输入,并进行过滤,本函数用于对来自非安全来源的变量进行验证,比如用户的输入。

本函数可从下面来源获取输入:

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION (Not yet implemented)
  • INPUT_REQUEST (Not yet implemented)

如果成功,则返回被过滤的数据,如果失败,则返回 false,如果 variable 参数未设置,则返回 NULL。

语法:

filter_input(input_type, variable, filter, options)

input_type 参数: 必须的。规定输入的类型;
variable 参数:规定要过滤的变量;
fiter 参数:可选,规定要是用的过滤器ID。默认是filter_sanitize_string,简单来说就是设置一个过滤器;
options 参数:规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。

举个栗子:
下面测试一个从表单 通过 post 传过来一个email 的变量

  1. <?php
  2. if(!filter_input(input_post,'email',filter_validate_email))
  3. {
  4. echo '传过来的不是一个正确的Email';
  5. }else{
  6. echo 'email格式是正确的!';
  7. }
filter_input_array : 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤

其实这个跟上面那个 filter_array 的方法意思差不多 知识由于是input 传过来的值 需要把 传递方法和变量引进来;

定义和用法

filter_input_array() 函数从脚本外部获取多项输入,并进行过滤。

本函数无需重复调用 filter_input(),对过滤多个输入变量很有用。

本函数可从各种来源获取输入:

  • INPUT_GET
  • INPUT_POST
  • INPUT_COOKIE
  • INPUT_ENV
  • INPUT_SERVER
  • INPUT_SESSION (Not yet implemented)
  • INPUT_REQUEST (Not yet implemented)
    如果成功,则返回被过滤的数据,如果失败,则返回 false。

语法

filter_input(input_type, args)

举个栗子:

  1. <?php
  2. $filters = array
  3. (
  4. "name" => array
  5. (
  6. "filter"=>FILTER_CALLBACK,
  7. "flags"=>FILTER_FORCE_ARRAY,
  8. "options"=>"ucwords"
  9. ),
  10. "age" => array
  11. (
  12. "filter"=>FILTER_VALIDATE_INT,
  13. "options"=>array
  14. (
  15. "min_range"=>1,
  16. "max_range"=>120
  17. )
  18. ),
  19. "email"=> FILTER_VALIDATE_EMAIL,
  20. );
  21. print_r(filter_input_array(INPUT_POST, $filters));
  22. ?>

输出结果:

  1. Array
  2. (
  3. [name] => Peter
  4. [age] => 41
  5. [email] => peter@example.com
  6. )
Correcting teacher:灭绝师太灭绝师太

Correction status:qualified

Teacher's comments:酒同学, 常量全部都要大写,注意啦~
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post