Correcting teacher:Guanhui
Correction status:qualified
Teacher's comments:写的挺好!过滤器是用来保护网站安全,是将用户输入的不合法数据过滤掉!
<?php
// 全局作用域:写到函数外面的
$name = 'php';
// 函数作用域
function get_name(){
$private = 123;
return $private;
}
// 输出123
echo get_name();
<?php
// 全局作用域:写到函数外面的
$name = 'php';
// 函数作用域
function get_name(){
//1. 在函数中做一个声明:用的很少不推荐
global $name;
return $name;
//2. 通过超全局变量$GLOBALS[]来访问
return $GLOBALS['name'];
//$private = 123;
//return $private;
}
echo '通过超全局变量$GLOBALS[]来访问:', get_name(),'<hr>';
// 获取当前目录绝对地址
echo $_SERVER['SCRIPT_FILENAME'];
const APP_NAME = '中文网';
define('APP_PATH','/phpstydu');
echo APP_NAME,'<br>';
echo APP_PATH;
const APP_NAME = '中文网';
define('APP_PATH','/phpstydu');
echo APP_PATH,'<br>';
echo constant('APP_NAME');
const APP_NAME = '中文网';
define('APP_PATH','/phpstydu');
echo APP_PATH,'<br>';
echo constant('APP_NAME'),'<hr>';
// 当常量名是变量值得时候 要打印常量 必须用constant()函数
$get = 'APP_NAME';
echo '通过echo获取是获取不到得:', $get,'<br>';
echo '通过constant函数获取是正确的:',constant($get),'<br>';
// 当定义常量名为空字符串的时候也可以用constant()函数 打印常量值
define('','admin@php.cn');
echo '通过echo方式获取不到:' , '','<br>';
echo '通过constant()函数获取到:' ,constant('');
// 查看当前可用常量 get_defined_constants(true), 参数true是分类
print_r(get_defined_constants(true));
// 查看当前用户自定义常量
print_r(get_defined_constants(true)['user']);
// 预定义常量
echo '版本号' . PHP_VERSION . '<br>';
echo '操作系统' . PHP_OS_FAMILY . '<br>';
echo '最大整数' . PHP_INT_MAX . '<br>';
echo '最大浮点数' . PHP_FLOAT_MAX . '<br>';
//Windows 目录分隔符反斜线\, mac是正斜线/
echo '目录分隔符' . DIRECTORY_SEPARATOR . '<hr>';
//魔术常量
echo '当前行号' . __LINE__ . '<br>';
echo '当前文件' . __FILE__ . '<br>';
echo '当前目录' . __DIR__ . '<hr>';
namespace ns1{
const APP_NAME = 'PHP开发';
}
namespace ns2{
const APP_NAME = '开发';
echo '命名空间ns2中访问命名空间ns1中得:' . \ns1\APP_NAME , '<br>';
}
// 全局空间 (没有名字/匿名空间)
namespace {
echo '全局空间访问ns1中得:' . \ns1\APP_NAME , '<br>';
echo '全局空间访问ns2中得:' . \ns2\APP_NAME , '<br>';
}
//1. 过滤单个变量 filter_var(要过滤的变量,过滤器常量)
// FILTER_VALIDATE_INT 验证整数
$age = 30;
$age = 50;
$options = ['options'=>['min_range'=>18,'max_range'=>60]];
var_dump(filter_var($age,FILTER_VALIDATE_INT,$options));
echo '<hr>';
$email = 'admin@php.cn';
$email = 'admin@php';
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
echo '<br>';
$email = 'admin@php.cn';
//也可以用FILTER_VALIDATE_EMAIL这个过滤器常量得id来验证
var_dump(filter_var($email, 274));
echo '<hr>';
//2. 验证多个变量 filter_var_array([多个变量],过滤器常量)
$a = 10;
$b =20;
// 变量较多时放到一个数组中
$arr = [$a,$b];
var_dump(filter_var_array($arr, FILTER_VALIDATE_INT));
// 外部变量: 通常通过http请求发送过来的,表单,get,post
// 使用 GET参数来演示外部变量的获取与验证/过滤
// GET 参数是在url后面添加一个?当做查询字符串
//filter_input(输入类型get/post,变量名,过滤器,参数)
echo 'id=' . $_GET['id'];
echo '<hr>';
$options = ['options'=>['min_range'=>1]];
var_dump(filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT,$options));
$args = [
'username' => FILTER_SANITIZE_STRING,
'email' => FILTER_VALIDATE_EMAIL,
'age' => ['filter'=>FILTER_VALIDATE_INT,$options = ['options'=>['min_range'=>18,'max_range'=>60]]],
'blog' => FILTER_VALIDATE_URL
];