批改状态:合格
老师批语:写的不错!总结可以,不用急于一时,随着知识的增加会理解的!
作用域是变量的生效范围,是查找变量的工具。首先理解几个概念。
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{// 类中定义常量只能用constconst 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-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号