批改状态:合格
老师批语:写的还行!不过文章排版注意一下,文章是公开的!
使用const创建;
const USER_NAME="张三";echo USER_NAME;
根据常量的命名规则:建议使用大写
使用define()创建常量
define("USER_NAME",'张三');echo USER_NAME;
由此可见;创建及申明常量的方式有以上二种const(),define("名","值");
使用get_defined_constants();查看当前所有定义的get_defined_constants();返回为数组;
//返回一个一维数组显示,常量+值;print_r(get_defined_constants());//返回一个2维数组分类显示,一维;分类名称,二维:常量+值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/>";echo '目录分隔符:'. DIRECTORY_SEPARATOR."<br/>";
可以使用 get_defined_constants() 查看所有当前定义的常量
__开头 __结尾
__LINE__ 文件中的当前行号;__FILE__ 文件的完整路经和文件名__DIR__ 文件所在目录__FUNCTION__ 当前涵数名__CLASS__ 当前类名__TRAIT__ 当前trait名__METHOD__ 当前类方法名__NAMESPACE__当前命名空间名
// 1、查询文件位置(不含文件名称)echo __DIR__ ;//输出:D:\phpstudy_pro\WWW//----------------------------------------------// 2、查询文件位置(含文件名称)echo __FILE__ ;//输出:D:\phpstudy_pro\WWW\index.php//----------------------------------------------class tempClass {function getClass() {return '类名为:' . __CLASS__ ;}}$viewClass = new tempClass();echo $viewClass->getClass();// 输出:类名为:tempClass
// 全局成员,不允许重复定义(全局成员包含: 常量, 类(接口), 函数 )// const STUDENT_NAME = '张三';// const STUDENT_NAME = '李四';//解决方法:创建命名空间namespace class1 {const STUDENT_NAME = '张三';}namespace class2 {const STUDENT_NAME = '李四';}// 全局空间: 也叫匿名空间namespace {echo \class1\STUDENT_NAME, "<br>";//输出:张三echo \class2\STUDENT_NAME, "<br>";//输出:李四}// 命名空间: 解决了全局成员 的命名冲突问题
常量前没有$常量必须初始化(定义时赋值)常量不能删除(如 unset )常量不受作用域限制常量推荐全部大写,多个单词之间使用下划线连接类常量只允许用const(不能使用 define())#########变量的作用域#########作用域是变量的生效范围作用域是查找变量的工具
在php,函数会创建出一个独立的作用域,不能直接访问外部变量
//创建一个变量$siteName='PHP中文网';//创建一个函数function getName(){// 方法1:在函数中做一个声明// global $siteName;// return $siteName;//-------------------------------------------// 方法2. 通过超全局变量$GLOBALS访问return $GLOBALS['siteName'];}echo getName();
//创建一个函数function getName(){//创建一个变量$siteName='PHP中文网';return $siteName;}echo getName();
PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。查看当前PHP版本支持的预订义过滤器;使用filter_list();函数返回包含所有得到支持的过滤器(数组)
print_r(filter_list());
也可以通过循环得到过滤器及 filter_id
foreach (filter_list() as $filter) {echo $filter . ' => ' .filter_id($filter) . '<br>';}
filter_var() 通过一个指定的过滤器来过滤单一的变量filter_var_array() 通过相同的或不同的过滤器来过滤多个变量filter_input 获取一个输入变量,并对它进行过滤filter_input_array 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤
验证过滤器: 又叫”验证器”, 主要用于数据的类型和格式验证
| 序号 | 过滤器函数 | 描述 |
|---|---|---|
| FILTER_VALIDATE_INT | 验证整数 | |
| FILTER_VALIDATE_FLOAT | 浮点点验证 | |
| FILTER_VALIDATE_BOOLEAN | 验证布尔项 | |
| FILTER_VALIDATE_EMAIL | 验证邮件 | |
| FILTER_VALIDATE_URL | 验证URL地址 | |
| FILTER_VALIDATE_IP | 验证IP | |
| FILTER_VALIDATE_REGEXP | 正则验证 |
语法:filter_var(要过滤的变量,过滤器常量,选项);以邮件为例:
//定义变量:邮箱地址$email = 'admin@phpcn';//定义变量:对邮箱地址进行过滤(未附加选项)$checkEmail=filter_var($email, FILTER_VALIDATE_EMAIL);//FILTER_VALIDATE_EMAIL也可以使用filter_id//判断:如果邮箱地址为:false,表示输入错误,否则输入正确if(!$checkEmail){echo '邮箱('.$email .')输入错误!';}else{echo '邮箱('.$email .')输入正确!';}
//定义变量:年龄$age = 116;//选项(要求年龄在18~60岁之间)$int_options = ['options'=>['min_range'=> 18, 'max_range'=> 60]];//定义变量:对年龄进行过滤(整数+年龄要求)$checkAge=filter_var($age, FILTER_VALIDATE_INT,$int_options);//判断:如果年龄为整数且满足int_options要求,表示输入正确,否则输入错误if($checkAge){echo '年龄('.$age .')输入正确!';}else{echo '年龄('.$age .')输入错误!';}
filter_var_array();
//定义数组变量:多个数值$number = [12,23,1.34];print_r(filter_var_array($number, FILTER_VALIDATE_INT));// 输出:Array ( [0] => 12 [1] => 23 [2] => )// 第3个非整数验证失败不输出
语法:filter_input('类型$_POST/$_GET',变量名,过滤器,参数)
比如:https://www.php.cn/?id=3var_dump(filter_input(INPUT_GET,’id’,FILTER_VALIDATE_INT))`
http://php.cn/?user=peter&email=12@qq.com&age=19
// 同时验证多个外部变量$args = ['user'=> FILTER_SANITIZE_STRING,'email'=>FILTER_VALIDATE_EMAIL,'age'=> ['filter'=>FILTER_VALIDATE_INT, 'options'=>['min_range'=> 18, 'max_range'=> 60]]];var_dump(filter_input_array(INPUT_GET, $args));
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号