作用域是变量的生效范围,是查找变量的工具。首先理解几个概念。
1.在函数内部做一个声明
$siteName='中国网';
function getInfo(){
global $siteName;
return $siteName;
}
2.通过超全局变量$GLOBALS来访问
$siteName='中国网';
function getInfo(){
return $GLOBALS['siteName'];
}
我们用如下代码可以查看PHP版本支持的预定义过滤器有哪些
foreach (filter_list() as $filter){
echo $filter.'=>'.filter_id($filter).'<br>';
}
过滤单个变量使用 filter_var(),用法是filter_var(要过滤的变量,过滤器常量)
先看下面的代码
//判断是否是整数
$age=30;
$age='aaa';
var_dump(filter_var($age,FILTER_VALIDATE_INT));
echo '<br>';
//在一定范围内验证
$ageTwo='500';
$options=['options'=>['min_range'=>18,'max_range'=>60]];
var_dump(filter_var($ageTwo,FILTER_VALIDATE_INT,$options));
echo '<hr>';
//判断是否邮箱
$email='aa@qq.com';
var_dump(filter_var($email,FILTER_VALIDATE_EMAIL));
echo '<br>';
var_dump(filter_var($email,274)); //这个用的ID也可
echo '<hr>';
结果如图
过滤验证多个变量使用 filter_var_array()
代码如下
$a=10;
$b='php.cn';
var_dump(filter_var_array([$a,$b],FILTER_VALIDATE_INT));
echo '<br>';
$arr=[$a,$b];
var_dump(filter_var_array($arr,FILTER_VALIDATE_INT));
结果如图
通常通过HTTP请求发送过来,表单,POST,GET。使用方法:filter_input(输入类型get/post,变量名,过滤器,参数)
代码如下
echo '<hr>';
// echo $_GET['id'].'<br>'; ID是通过URL中的参数传递过来的
$options=['options'=>['min_range'=>1]];
var_dump(filter_input(INPUT_GET,'id',FILTER_VALIDATE_INT,$options));
结果如图:
$args=[
'username'=>FILTER_VALIDATE_INT,
'age'=>['filter'=>FILTER_VALIDATE_INT,'options'=>['min_range'=>18,'max_range'=>60]],
'email'=>FILTER_VALIDATE_EMAIL,
'blog'=>FILTER_VALIDATE_URL
];
var_dump(filter_input_array(INPUT_GET,$args));
结果如图:
我们可以看到Email这块是False,因为参数值就不是正确的Email形式。
更多的变量过滤器大家可以查看手册。
echo '<pre>'.print_r(get_defined_constants(true),true).'</pre>';//加个true 分组显示
如下图所示
echo '<pre>'.print_r(get_defined_constants(true)['user'],true).'</pre>'; //只返回用户自定义的
两种方式创建常量,关键词const,函数define。 但在类中定义常量只能用const。
常量没有$,不能更新。必须初始化。 常量不可删除,不受作用域限制 常量推荐全部大写,多个单词之间用下划线_隔开
const USERNAME='黄帝';
define('AGE','9999');
class User{
// 类中定义常量只能用const
const USERNAME='炎帝';
// define('age','9999'); //用函数创建则会报错。
}
echo USERNAME,'<br>';
echo constant('AGE');
const USERNAME_CHIYOU='蚩尤';
$name='USERNAME_CHIYOU';
echo $name,'<br>'; //显示的是字符串
echo constant($name);//显示的是常量的内容
define('','aa@qq.com');
echo ''; //显示不出来
echo constant(''); //显示出来了
echo '当前目录:'.__DIR__.'<br>';
echo '当前文件:'.__FILE__.'<br>';
echo '当前行号:'.__LINE__.'<br>';
echo '版本号:'.PHP_VERSION.'<br>';
echo '操作系统:'.PHP_OS_FAMILY.'<br>';
echo '最大整数:'.PHP_INT_MAX.'<br>';
echo '最大浮点数:'.PHP_FLOAT_MAX.'<br>';
echo '目录分割符:'.DIRECTORY_SEPARATOR.'<br>';
目前的知识都是一些概念性的,容易理解。能看到,但具体运用,肯定还需要看笔记。 过滤多个变量这块用到了类,目前还不明白,以后学习到再来消化理解!
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号