一.变量的作用域
1.作用域的概念
- 作用域是变量的生效范围
- 作用域是查找变量的工具
2.作用域的分类
- 变量的作用域分为全局作用域和变量作用域
- 全局作用域:写到了函数外部的变量
- 函数作用域 写到函数内部的变量
3.函数内部 访问函数外部全局变量的方法
- 函数内部不可以直接访问函数外部的变量
<?php
error_reporting(E_ALL);
$siteName="你好朱老师";
function getInfo(){
//会报错 不会被调用
return $siteName;
}
echo getInfo();
?>
- 方法1:函数内部访问函数外部的全局变量可以用 global $外部变量名 来实现
<?php
error_reporting(E_ALL);
$siteName="你好朱老师";
function getInfo(){
global $siteName;
return $siteName;
}
echo getInfo();
?>
方法2: 使用$GLOBALS 超全局变量
$GLOBALS 是超全局变量 不受作用域限制 可以在函数中直接访问
在全局中创建的变量,会自动成为超全局变量$GLOBALS中的一个元素echo $GLOBALS[‘siteName’] 这样可以拿到全局变量
<?php
error_reporting(E_ALL);
$siteName="你好朱老师";
function getInfo(){
//使用GLOBALS的方法调用外部变量
return $GLOBALS['siteName'];
}
echo getInfo();
?>
二.常量的定义与命名空间
1.常量的定义
- 方法1 const APP_PATH=”应用路径”;
- 方法2 define(‘ABS’,100);常量ABS的值为100;在类常量值中使用会报错
- 常量不允许重新定义,禁止删除,常量不受作用域限制,
- 常量推荐全部大写 多个单词使用下划线链接
2.命名空间
用namespace定义空间
空间分为私有空间和全局空间
<?php
// 定义空间 常量用
namespace space1 {
const AA="space1";
};
namespace space2{
const AA="space2";
};
// 定义全局匿名空间
namespace {
echo space1\AA;
echo space2\AA;
};
// echo '还行吧';
?>
三 常用的变量过滤器
- filter_var(); 通过一个指定的过滤器来过滤单一的变量
- filter_var_array() 函数获取多个变量,并进行过滤
- filter_input() 函数从脚本外部获取输入(比如表单输入),并进行过滤。
- filter_input_array() 函数从脚本外部获取多项输入(比如表单输入),并进行过滤。同filter_input()
- filter_has_var() 函数检查是否存在指定输入类型的变量。
- 实例1 filter_var(); 通过一个指定的过滤器来过滤单一的变量
// 1.过滤单个变量 filter_var()
$age=61;
// filter_var(要过滤的变量,过滤器常量,过滤范围)
echo filter_var($age,FILTER_VALIDATE_INT);
输出了 int(61)
- 实例2 filter_var_array() 函数过滤多个变量
// 2.过滤多个变量 是否为整数
$gaes=[2,3,6,4,'xx',6];
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() 过滤单个外部变量
<?php
if(filter_input(INPUT_GET,'email',FILTER_VALIDATE_EMAIL)){
echo '您输入的是个邮箱!';
}else{
echo '您输入的格式错误';
}
?>
- 实例4 过滤 多个外部变量
使用的连接为//验证多个外部变量 GET
//定义过滤器
$args = [
'username'=> FILTER_SANITIZE_STRING,//去除标签以及特殊字符
'email'=>FILTER_VALIDATE_EMAIL,//验证邮箱
'age'=> ['filter'=>FILTER_VALIDATE_INT, 'options'=>['min_range'=> 18, 'max_range'=> 60]],
'blog'=> FILTER_VALIDATE_URL
];//验证整数并且最小不能小于18最大不能大于60
//使用外部变量过滤器
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“ }