博主信息
博文 30
粉丝 0
评论 2
访问量 37806
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP 变量作用域、常量的定义、常用的变量过滤器
司马青衫
原创
1056人浏览过

PHP 变量作用域、常量的定义、常用的变量过滤器

PHP 变量作用域

  • 作用域是查找变量的工具
  • 作用域是变量的生效范围
    • 全局作用域:写在函数的外部的变量,不能在函数中直接使用。
    • 函数作用域:函数内部创建的变量,私有变量,能直接在函数中访问。
    • 函数中访问外部变量有两种方式:
    • 1.函数内使用global声明外部变量 2.使用超全局变量$GLOBALS来访问
  1. <?php
  2. //外部变量 全局作用域
  3. $name = 'simaqingshan';
  4. $age = 20;
  5. //函数作用域
  6. function getName(){
  7. //1.global声明 访问外部全局变量
  8. global $name;
  9. //2.$GLOBALS超全局变量访问外部变量
  10. //私有变量 可以直接访问
  11. $height = 180;
  12. return $name.'&nbsp;'.$GLOBALS['age'].'&nbsp;'.$height;
  13. }
  14. echo getNAME();

  • 还有一些其它超全局变量 如$_SERVER
    • echo $_SERVER['SCRIPT_NAME'];
    • echo $_SERVER['REQUEST_URI'];

PHP 常量

自定义常量

  • 查看当前有哪些可用的常量 print_r(get_defined_constants(true));
  • 用户自定义常量方式:
    • 1.const关键字方式:类中只允许使用const定义常量
    • 2.define关键字方式
  • 使用constant()拿到常量
  1. <?php
  2. const NAME = 'simaqingshan';
  3. define('NAME1', 'simaqingshan');
  4. //查看当前有哪些可用的常量
  5. print_r(get_defined_constants(true));
  • 常量特点:
    • 常量前面没有$符号
    • 常量必须初始化
    • 常量不能删除
    • 常量不受作用域限制
    • 常量推荐全部大写,多个单词之间使用下划线连接

预定义常量、魔术常量

  1. <?php
  2. //预定义常量
  3. echo '版本号:'.PHP_VERSION.'<br>';
  4. echo '操作系统:'.PHP_OS_FAMILY.'<br>';
  5. echo '最大整数:'.PHP_INT_MAX.'<br>';
  6. echo '最大浮点数:'.PHP_FLOAT_MAX.'<br>';
  7. echo '目录分隔符:'.DIRECTORY_SEPARATOR.'<hr>';
  8. //魔术常量
  9. echo '当前行号:'. __LINE__ . '<br>';
  10. echo '当前文件:'. __FILE__ . '<br>';
  11. echo '当前目录:'. __DIR__ . '<br>';

命名空间

  • 解决全局空间中重复定义的命名冲突
    • 使用namespace
  1. <?php
  2. namespace ns1{
  3. const name = 'sima';
  4. }
  5. namespace ns2{
  6. const name = 'qingshan';
  7. }
  8. //创建全局空间
  9. namespace{
  10. echo \ns1\name.'<br>';
  11. echo \ns2\name.'<br>';
  12. }

PHP 变量过滤器

  • 查看当前 PHP 版本支持的预定义过滤器
  1. <?php
  2. foreach(filter_list() as $filter){
  3. echo $filter. '=>'.filter_id($filter).'<br>';
  4. }
名称 描述
FILTER_VALIDATE_INT 验证值是否为整数
FILTER_VALIDATE_EMAIL 验证值是否为 email
FILTER_VALIDATE_URL 验证值是否为 URL 地址
FILTER_VALIDATE_BOOLEAN 验证值是否为 BOOL
FILTER_VALIDATE_IP 验证值是否为 IP 地址

验证单个变量

  • filter_var(要过滤的变量,过滤器常量,验证可选条件)
  1. <?php
  2. $age = 60;
  3. $option = ['options'=>['min_range'=>18,'max_range'=>60]];
  4. var_dump(filter_var($age, FILTER_VALIDATE_INT, $option));

验证多个变量

  • filter_var_array()
  1. <?php
  2. $arr=[30,50,'hello'];
  3. var_dump(filter_var_array($arr,FILTER_VALIDATE_INT));

验证外部变量

  • filter_input(): 函数从外部获取输入(比如表单输入),并进行验证。
    • INPUT_GET
    • INPUT_POST
    • INPUT_COOKIE
    • INPUT_SERVER
    • INPUT_ENV
  1. <?php
  2. var_dump(filter_input(INPUT_GET,'age', FILTER_VALIDATE_INT));

验证多个外部变量

  • filter_input_array()
  1. <?php
  2. $args=[
  3. 'username'=>FILTER_SANITIZE_STRING,
  4. 'email'=>FILTER_VALIDATE_EMAIL,
  5. 'age'=>['filter'=>FILTER_VALIDATE_INT, 'option'=>['min_range'=>18,'max_range'=>60]],
  6. 'blog'=>FILTER_VALIDATE_URL
  7. ];
  8. var_dump(filter_input_array(INPUT_GET, $args));

批改老师:GuanhuiGuanhui

批改状态:合格

老师批语:写的很好!很认真!加油!
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学