Blogger Information
Blog 18
fans 3
comment 3
visits 16200
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php 变量的作用域 命名空间 变量过滤器7.3
刹那永恒个人博客
Original
654 people have browsed it

一.变量的作用域

1.作用域的概念

  • 作用域是变量的生效范围
  • 作用域是查找变量的工具

2.作用域的分类

  • 变量的作用域分为全局作用域和变量作用域
    • 全局作用域:写到了函数外部的变量
    • 函数作用域 写到函数内部的变量

3.函数内部 访问函数外部全局变量的方法

  • 函数内部不可以直接访问函数外部的变量
    1. <?php
    2. error_reporting(E_ALL);
    3. $siteName="你好朱老师";
    4. function getInfo(){
    5. //会报错 不会被调用
    6. return $siteName;
    7. }
    8. echo getInfo();
    9. ?>
  • 方法1:函数内部访问函数外部的全局变量可以用 global $外部变量名 来实现
    1. <?php
    2. error_reporting(E_ALL);
    3. $siteName="你好朱老师";
    4. function getInfo(){
    5. global $siteName;
    6. return $siteName;
    7. }
    8. echo getInfo();
    9. ?>
  • 方法2: 使用$GLOBALS 超全局变量

    • $GLOBALS 是超全局变量 不受作用域限制 可以在函数中直接访问
      在全局中创建的变量,会自动成为超全局变量$GLOBALS中的一个元素

    • echo $GLOBALS[‘siteName’] 这样可以拿到全局变量

    1. <?php
    2. error_reporting(E_ALL);
    3. $siteName="你好朱老师";
    4. function getInfo(){
    5. //使用GLOBALS的方法调用外部变量
    6. return $GLOBALS['siteName'];
    7. }
    8. echo getInfo();
    9. ?>

    二.常量的定义与命名空间

    1.常量的定义

  • 方法1 const APP_PATH=”应用路径”;
  • 方法2 define(‘ABS’,100);常量ABS的值为100;在类常量值中使用会报错
  • 常量不允许重新定义,禁止删除,常量不受作用域限制,
  • 常量推荐全部大写 多个单词使用下划线链接

    2.命名空间

    用namespace定义空间
    空间分为私有空间和全局空间
  1. <?php
  2. // 定义空间 常量用
  3. namespace space1 {
  4. const AA="space1";
  5. };
  6. namespace space2{
  7. const AA="space2";
  8. };
  9. // 定义全局匿名空间
  10. namespace {
  11. echo space1\AA;
  12. echo space2\AA;
  13. };
  14. // echo '还行吧';
  15. ?>

三 常用的变量过滤器

  1. filter_var(); 通过一个指定的过滤器来过滤单一的变量
  2. filter_var_array() 函数获取多个变量,并进行过滤
  3. filter_input() 函数从脚本外部获取输入(比如表单输入),并进行过滤。
  4. filter_input_array() 函数从脚本外部获取多项输入(比如表单输入),并进行过滤。同filter_input()
  5. filter_has_var() 函数检查是否存在指定输入类型的变量。
  • 实例1 filter_var(); 通过一个指定的过滤器来过滤单一的变量
    1. // 1.过滤单个变量 filter_var()
    2. $age=61;
    3. // filter_var(要过滤的变量,过滤器常量,过滤范围)
    4. echo filter_var($age,FILTER_VALIDATE_INT);

输出了 int(61)

  • 实例2 filter_var_array() 函数过滤多个变量
  1. // 2.过滤多个变量 是否为整数
  2. $gaes=[2,3,6,4,'xx',6];
  3. var_dump(filter_var_array($gaes,FILTER_VALIDATE_INT));

输出了
array(6) { [0]=> int(2) [1]=> int(3) [2]=> int(6) [3]=> int(4) [4]=> bool(false) [5]=> int(6) } string(12) “admin@qq.com

  • 实例3 filter_input() 过滤单个外部变量
  1. <?php
  2. if(filter_input(INPUT_GET,'email',FILTER_VALIDATE_EMAIL)){
  3. echo '您输入的是个邮箱!';
  4. }else{
  5. echo '您输入的格式错误';
  6. }
  7. ?>

  • 实例4 过滤 多个外部变量
    1. //验证多个外部变量 GET
    2. //定义过滤器
    3. $args = [
    4. 'username'=> FILTER_SANITIZE_STRING,//去除标签以及特殊字符
    5. 'email'=>FILTER_VALIDATE_EMAIL,//验证邮箱
    6. 'age'=> ['filter'=>FILTER_VALIDATE_INT, 'options'=>['min_range'=> 18, 'max_range'=> 60]],
    7. 'blog'=> FILTER_VALIDATE_URL
    8. ];//验证整数并且最小不能小于18最大不能大于60
    9. //使用外部变量过滤器
    10. var_dump(filter_input_array(INPUT_GET,$args));
    使用的连接为
    bj.bj/p0703-5.php?username=admin&email=ksd@qq.com$age=23&blog=http://sss.com
    输出结果为
    array(4) { [“username”]=> string(5) “admin” [“email”]=> bool(false) [“age”]=> NULL [“blog”]=> string(14) “http://sss.com“ }

总结 这里卡了很多天,可能是脑袋不够用吧,但是我不信邪,加油

Correcting teacher:GuanhuiGuanhui

Correction status:qualified

Teacher's comments:相信你可以的,还有PHP文件不要用中文命名!
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