重要案例代码
<?php
// 静态变量:实现函数在多次调用的过程中共享数据
namespace ns3;
function test(){
static $sum = 0;
$sum = $sum+1;
return $sum;
}
echo test(),'<br>';
echo test(),'<br>';
echo test(),'<br>';
// 变量过滤器
foreach( filter_list() as $filter){
echo $filter.' ==>'.filter_id($filter).'<br>';
}
echo '<hr>';
// 过滤单个变量filter_var()
// 年龄
$age = 30;
var_dump(filter_var($age, FILTER_VALIDATE_INT,['options'=>['min_range'=>18,'max_range'=>60]]));
echo '<hr>';
// 过滤多个变量filter_var_array()
var_dump(filter_var_array([100, 'php'], FILTER_VALIDATE_INT));
echo '<hr>';
// 检测外部变量, filter_has_var()
var_dump(filter_has_var(INPUT_GET, 'page'));
echo '<hr>';
// 访问外部变量的过滤器,filter_input
var_dump(filter_input(INPUT_GET, 'p',FILTER_VALIDATE_INT, ['options'=>['min_range'=>1]]));
echo '<hr>';
// 验证多个外部变量: filter_input_array()
$args = [
'username' => FILTER_SANITIZE_STRING,
'email' => FILTER_VALIDATE_EMAIL,
'age' => ['filter' => FILTER_VALIDATE_INT, 'flags'=>FILTER_REQUIRE_SCALAR, 'options' => ['min_range' => 18]],
'blog' => FILTER_VALIDATE_URL,
];
运行结果
总结:
1、变量的本质是数据共享;函数的本质是代码共享。
2、静态变量实现函数在多次调用中共享数据。
3、变量过滤器:实现比如表单输入数据的验证。
过滤单个变量filter_var()
过滤多个变量filter_var_array()
检测外部变量, filter_has_var()
访问外部变量的过滤器,filter_input()
验证多个外部变量: filter_input_array()
4、常量不受作用域限制
5、流程控制中,define能用, const不能用
6、常量通常只允许用标量进行初始化
标量: 单值变量, 字符串, 数值,布尔, null