批改状态:合格
老师批语:变量过滤器, 要多多练习
php 中的变量作用域分为函数作用域和全局作用域,函数中创建的变量只能在函数作用域内生效,全局变量在函数外全局生效
php 中变量分为三种:全局变量,私有变量和超全局变量,对应由全局、函数内、系统预定义生成
php 中给出了一些超全局变量,由系统加载,在全局和函数内都可以调用
| 序号 | 变量名 | 描述 |
|---|---|---|
| 1 | $GLOBALS |
引用全局作用域中可用的全部变量 |
| 2 | $_SERVER |
服务器和执行环境信息 |
| 3 | $_GET |
HTTP GET 请求:通过 URL 参数传递给当前脚本的变量的数组 |
| 4 | $_POST |
HTTP POST 请求: 将变量以关联数组形式传入当前脚本 |
| 5 | $_FILES |
HTTP 文件上传变量,保存着上传文件的全部信息 |
| 6 | $_COOKIE |
通过 HTTP Cookies 方式传递给当前脚本的变量的数组 |
| 7 | $_SESSION |
当前脚本可用 SESSION 变量的数组 |
| 8 | $_REQUEST |
默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组 |
| 9 | $_ENV |
通过环境方式传递给当前脚本的变量的数组 |
示例:
<?php// 声明全局变量$a=1;function aaa ():string{//7.0的函数声明方式functing:xxx():数据类型,用于限定返回值类型// 声明局部变量$a=2;return '局部变量a='.$a.'<br>全局变量a='.$GLOBALS['a'].'当前文件路径为'.$_SERVER['SCRIPT_NAME'];}echo aaa();
运行结果:
示例:
<?phpnamespace a;//非静态变量,每次调用$a都会初始化function aaa():int{$a=1;return $a++;}echo aaa(),'<br>';echo aaa(),'<br>';echo aaa(),'<hr>';namespace b;//静态变量function aaa():int{static $a=1;return $a++;}echo aaa(),'<br>';echo aaa(),'<br>';echo aaa(),'<hr>';
运行结果:
PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入
常用过滤器:
filter_var() - 通过一个指定的过滤器来过滤单一的变量
filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量
filter_input - 获取一个输入变量,并对它进行过滤
filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤
代码示例:
<?php// 用filter_var函数过滤10-90间的数$a=10;$b='20';//filter_var验证过程中会将变量转化为字符串,所以$b也会通过$c=100;var_dump(filter_var($a,FILTER_VALIDATE_INT,['options'=>['min_range'=>10,'max_range'=>90]]));var_dump(filter_var($b,FILTER_VALIDATE_INT,['options'=>['min_range'=>10,'max_range'=>90]]));var_dump(filter_var($c,FILTER_VALIDATE_INT,['options'=>['min_range'=>10,'max_range'=>90]]));echo '<hr>';//过滤邮箱$email='1adawara@qq.com';var_dump(filter_var($email,FILTER_VALIDATE_EMAIL));//FILTER_VALIDATE_EMAIL id 为274echo '<br>';var_dump(filter_var($email,274));//FILTER_VALIDATE_EMAIL id 为274,效果一样echo '<hr>';//filter_var_array同时过滤多个变量$d=['11','22','33','sdaf'];var_dump(filter_var_array($d,FILTER_VALIDATE_INT));echo '<hr>';//检测外部输入变量//get方式在url地址中传参 例:127.0.0.1/demo1.php?page=1//检测是否有get方式输入属性pagevar_dump(filter_has_var(INPUT_GET, 'page'));echo '<hr>';//检测get方式输入的属性page值是否为整数var_dump(filter_input(INPUT_GET,'page',FILTER_VALIDATE_INT));echo '<hr>';//检测多个外部输入变量// url:127.0.0.1/demo.php?password=13214$aaa=['username'=>FILTER_VALIDATE_INT,'password'=>FILTER_VALIDATE_INT];var_dump(filter_input_array(INPUT_GET,$aaa));
运行结果:
| 定义方式 | 描述 |
|---|---|
get_defined_constants() |
查看系统所有常量 |
defined() |
检测常量是否存在 |
define() |
创建常量 |
const |
创建常量 |
constant() |
获取常量值 |
| 预定义常量 | 描述 |
|---|---|
PHP_VERSION |
PHP 版本 |
PHP_MAXPATHLEN |
PHP 路径最大长度:1024 |
PHP_OS_FAMILY |
操作系统:Windows/Darwin/Linux |
PHP_SAPI |
web 服务器与 php 之间接口: apache2handler |
PHP_EOL |
行尾结束符 |
PHP_INT_MAX |
最大整数: 9223372036854775807 |
PHP_INT_MIN |
最小整数: -9223372036854775808 |
PHP_INT_SIZE |
整数宽度: 8 |
PHP_FLOAT_MAX |
最大浮点数:1.7976931348623E+308 |
PHP_FLOAT_MIN |
整小浮点数: 2.2250738585072E-308 |
DEFAULT_INCLUDE_PATH |
默认 PHP 命令路径 |
PHP_EXTENSION_DIR |
默认 PHP 扩展路径 |
E_ERROR |
运行时错误: 致命中断 |
E_PARSE |
语法解析错误: 致命中断 |
E_NOTICE |
运行时提示: 不中断 |
E_WARNING |
运行时警告: 不中断 |
E_ALL |
所有级别错误(除E_STRICT) |
E_STRICT |
更加严格的错误处理机制,高于E_ALL |
TRUE |
布尔真 |
FALSE |
布尔 |
NULL |
空 |
DIRECTORY_SEPARATOR |
目录分隔符 |
| 魔术常量 | 描述 |
|---|---|
__LINE__ |
文件中的当前行号 |
__FILE__ |
文件的完整路径和文件名 |
__DIR__ |
文件所在目录 |
__FUNCTION__ |
当前的函数名称 |
__CLASS__ |
当前类名称 |
__TRAIT__ |
当前Trait名称 |
__METHOD__ |
当前类方法名称 |
__NAMESPACE__ |
当前命名空间名称 |
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号