Correcting teacher:Guanhui
Correction status:qualified
Teacher's comments:写的可以!加油!
作用域是变量的生效范围,且是查找变量的工具
1.全局作用域和函数作用域(在php,函数会创建出一个独立的作用域,不能直接访问外部的变量)
<?php
// 设置一个全局变量,写在函数外部,全局作用域
$siteName = "php中文网";
function getInfo(){
//函数作用域,只有作用于函数内,私有变量
$siteName2 ="PHP中文网";
return $siteName2;
}
echo getInfo();
2.访问函数外部的变量方法一:声明global
$siteName = "php中文网";
function getInfo(){
// 使用全局变量方法一:声明global
global $siteName;
return $siteName;
}
echo getInfo();
3.访问函数外部的变量方法二:通过超全局变量$GLOBALS
<?php
// 在全局中创建的变量,会自动成为超全局数组$GLOBALS中的一个元素
//超全局变量,在每个脚本中都有预定义
// 超全局变量, 不受作用域限制,可以在函数中直接访问
$siteName = "php中文网";
function getInfo(){
// 使用全局变量方法二:超全局变量$GLOBALS
return $GLOBALS['siteName'];
}
echo getInfo();
print_r(get_defined_constants(true))
;1.定义常量方式:const APP_NAME = "学生管理系统";
和define("APP_USER","admin");
2.两种定期的区别在于define()
不能类中定义
//两者区别:define()不能类中定义
class Info {
// define("APP_USER","admin");//报错
const APP_NAME = "学生管理系统";//可行
}
3.访问常量:echo APP_NAME;
与echo constant("APP_USER");
;区别在于:
<?php
const APP_NAME="学生管理系统";
$name = "APP_NAME";
//不可行
echo $name;//输出“APP_NAME”
//可行
echo constant($name);//输出“学生管理系统”
4.定义常量注意事项:
const SEX = 'famale';
echo '版本号: ' . PHP_VERSION . '<br>';
echo '操作系统: ' . PHP_OS_FAMILY . '<br>';
echo '最大整数: ' . PHP_INT_MAX . '<br>';
echo '最大浮点数: ' . PHP_FLOAT_MAX . '<br>';
echo '目录分隔符: ' . DIRECTORY_SEPARATOR . '<hr>';
序号 | 魔术常量 | 描述 |
---|---|---|
1 | __LINE__ |
文件中的当前行号 |
2 | __FILE__ |
文件的完整路径和文件名 |
3 | __DIR__ |
文件所在目录 |
4 | __FUNCTION__ |
当前的函数名称 |
5 | __CLASS__ |
当前类名称 |
6 | __TRAIT__ |
当前Trait 名称 |
7 | __METHOD__ |
当前类方法名称 |
8 | __NAMESPACE__ |
当前命名空间名称 |
<?php
// 命名空间: 解决了全局成员 的命名冲突问题
// 全局成员: 常量, 类[接口], 函数;
// 全局空间中的成员, 不允许重复定义
namespace ns1 {
const APP_NAME = '学生管理系统';
}
namespace ns2 {
const APP_NAME = '用户管理系统';
}
// 全局空间: 匿名空间
namespace { //访问常量
echo \ns1\APP_NAME;
echo \ns2\APP_NAME;
}
过滤一个或者多个变量,如果成功,则返回被过滤的数据。如果失败,则返回 FALSE。
1单个过滤(验证):filter_var(要过滤变量,过滤器常量,可选参数)
<?php
$id = 155;
//设置参数
$opt = ['options'=>['min_range'=> 18, 'max_range'=> 60]];
var_dump(filter_var($id,FILTER_VALIDATE_INT,$opt));
2.多个过滤(验证):filter_var_array()
<?php
$id = 50;
$email ="363799120@qq.com";
$arr = [$id,$email];
var_dump(filter_var_array($arr,FILTER_VALIDATE_INT));
3.外部变量过滤,通过 http请求发送过来的(表单,get,post),函数:filter_input(输入类型get/post, 变量名, 过滤器, 参数)
<?php
//通过GET参数来演示获取的外部变量的验证/过滤
//http://myphp.edu/index.php?id=15&username=admin&email=363799120@qq.com&age=33&money=0&url=www.myphp.edu/index.html
$option =[ ///同时验证多个外部变量
"id" =>FILTER_VALIDATE_INT,//验证整数
'username'=> FILTER_SANITIZE_STRING,//过滤字符串
'email'=>FILTER_VALIDATE_EMAIL,//过滤邮箱
'age'=> ['filter'=>FILTER_VALIDATE_INT, 'options'=>['min_range'=> 1, 'max_range'=> 80]],
"money" =>FILTER_VALIDATE_FLOAT,//验证浮点
'url'=> FILTER_VALIDATE_URL //验证 URL 地址
];
var_dump(filter_input_array(INPUT_GET,$option));