常量的知识点总结:
php常量 :用于数据计算固定的值,常量类型只能是标量类型 boolean int float string;
- 常量名前不能有$ 一般常量名总是大写 .
- 多个单词由下划线连接 .
- 常量必须初始化,常量也不受作用域的限制
- 类常量之能用const定义 常量也不能取消定义或者重新定义
代码如下:
// 第一种声明一个常量的方法
const CE_SHI = "第一种声明常量的方法;";
// 输出看一下
echo CE_SHI,"输出出来了";
echo "<hr>";
// 第二种声明常量的方法
// define(字符串常量名,常量值)
define("CE","第二种声明的方法;使用的是define(字符串常量名,常量值) ");
echo CE,"输出出来了";
echo "<hr>";
// 还可以使用 constant("常量名")来访问常量
// 有返回值,需要配合echo
const AA = "可以使用constant()来访问常量,有返回值,需要配合echo打印出来";
echo constant("AA");
// 当常量的名称在变量里定义时 就可以用这个
// 例如
const BB = "当常量的名称在变量里定义时 就可以用constant(常量名)来访问常量";
$name="BB";
echo "<BR>";
echo constant("BB"),"同样显示出来了";
// 类常量之能用const定义 常量也不能取消定义或者重新定义
// 常量必须初始化,常量也不受作用域的限制
// 创建一个类
class xue{
const XI = "PHP";
}
echo "<hr>";
const AAA = "函数";
function xi(){
return AAA;
}
echo xi();
效果图
常量是全局成员,最大的问题是命名冲突,引入命名空间 针对的是全局成员
- 全局空间内的成员不允许重复定义
- 全局成员:常量,函数,类[接口]
- 命名空间 namespace+空间名称+{}
- 命名空间解决全局成员 命名冲突的问题
代码如下
namespace yyy{
const AAA = "这是第一个空间里的常量值";
echo AAA;
// 加个换行横线
echo"<hr>";
}
namespace uuu{
const AAA = "这是第二个空间里的常量值";
echo AAA,".....这个是打印出第二个空间里的常量";
// 访问第一个空间的AAA常量,程序时由上往下执行的
// 所以第一个访问不了下面的空间
echo "<br>";
echo \yyy\AAA,"....现在这个是在第二个空间里打印的第一个空间的常量";
}
// 可以引入全局空间 也叫匿名空间
namespace{
echo"<hr>";
echo \yyy\AAA,"...这是匿名空间打印的第一个空间的常量";
echo"<hr>";
echo\uuu\AAA,"...这是匿名空间打印的第二个空间常量 ";
}
效果图:
过滤器的使用
- 过滤器函数 filter_var(),过滤单个变量
- filter_var(变量,过滤器函数,options(额外的过滤规则)); 返回值: 返回过滤后的值,否则返回false
- 设置过滤器的第三个值的参数,min_range和 max_range分别是最小值和最大值的意思
上代码
// 声明一个变量
$a = "1117";
// 使用过滤器把数字过滤出来 过滤器id是257
// 设置过滤器的第三个值的参数,min_range和 max_range分别是最小值和最大值的意思
$min = 1110;
$max = 1115;
$c = array("options"=>array("min_range"=>$min,"max_range"=>$max));
$b = filter_var($a,257,$c);
// 然后使用var_dump打印出来 也可以使用echo
var_dump($b);
// 做一个判断
if($b){
echo"数字符合区间";
}else{
echo"不符合数字区间";
}
图在这:
- filter_var_array()过滤多个变量
代码:
// 过滤多个变量
$v = 10;
$h = 11;
$j = [$v,$h];
var_dump(filter_var_array($j,257));
效果图
- 验证多个外部变量 filter_input_array(输入类型get/post,变量数组规定了过滤器参数数组,键是变量名,值是过滤器) .
- 过滤外部变量:通过http get/post请求发送过来数据,过滤表单数据 .
- 使用get参数来演示外部变量的获取与过滤 .
- 先创建一个变量数组,用来设置需要过滤对应信息,然后再把这个数组引入进去 .
代码在这:
echo "<HR>";
$aaaa = [ "user"=> FILTER_SANITIZE_STRING,
"age"=> FILTER_VALIDATE_INT,
"ip"=>FILTER_VALIDATE_IP,
"url"=>FILTER_VALIDATE_URL,];
// 打印出来 并且设置输入方式 然后引入刚才输入的数组,就可以过滤想要过滤的信息了
var_dump(filter_input_array(INPUT_GET,$aaaa));
echo "<HR>";
图在这:
- 使用filter_input(输入方式,变量名,对应过滤器的名称或者函数的id)过滤单个变量 .
- 可以设置过滤规则
规则:
$guize = ["options"=>["min_range"=>1]];
过滤:
var_dump(filter_input(INPUT_GET,"id",257,$guize));
图在这:
设置的规则是需要id大于等于1 当输入零时如下图: