php常量:用于数据计算固定的值;并且常量类型只能是标量类型;
注意:
1.常量名前不能有$,一般常量名总是大写;
2.常量有多个单词时由下划线连接;
类常量只能用const定义;常量不受作用域的限制;常量创建时必须初始化;
语法:可以用define()函数来定义常量,并且,一个常量一旦被定义,在程序执行过程中就不能再改变或取消定义;
实例演示:
<?php
const APP_PATH='/phpstudy_pro';
// define(常量名,常量值)
define('RUNTIME_PATH','/1118');
echo APP_PATH;
echo "<hr/>";
// constant()函数返回一个常量的值
echo constant('RUNTIME_PATH'); // 输出/1118
echo "<hr/>";
$num='APP_PATH';
echo $num;
echo constant($num);
echo "<hr/>";
// 获取查看系统所有的常量
// get_defined_constants();
// 常量不受作用域的限制
function getName(){
return APP_PATH;
}
echo getName();
?>
<?php
echo "php版本号:".PHP_VERSION."<br/>";
echo "phpz操作系统:".PHP_OS_FAMILY."<br/>";
echo "php环境变量里的目录列表的分隔符".PATH_SEPARATOR."<br/>";
echo "目录分隔符".DIRECTORY_SEPARATOR."<br/>";
echo "最大整数".PHP_INT_MAX."<br/>";
echo "最大浮点数".PHP_FLOAT_MAX."<br/>";
?>
PHP魔术常量根据常量位置的变化而变化;
名称 | 说明 |
---|---|
__LINE__ |
文件中的当行行号 |
__FILE__ |
文件的完整路径和文件名,如果用在被包含文件中,则返回被包含的文件名 |
__DIR__ |
文件所在的目录 |
__FUNCTION__ |
返回函数名称 |
__CLASS__ |
当前类的名称 |
__METHOD__ |
类的方法名 |
__NAMESPACE__ |
当前命名空间的名称 |
__TRAIT__ |
当前Trait名称 |
常量是全局成员,则会有命名冲突的问题,引入命名空间,命名空间解决全局成员,命名冲突的问题;需要注意,命名空间前不能有任何输出,需要放在脚本首行;
实例演示:
<?php
namespace a{
const APP_PATH="/phpstudy_pro/WWW";
}
namespace b{
const APP_PATH="/phpstudy_pro/COM";
}
namespace{
echo \a\APP_PATH."<br/>";
echo \b\APP_PATH."<br/>";
}
?>
php过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入;
filter_var():过滤一个变量filter_var(var,filter,options);返回值,返回过滤后的值,否则返回false;
filter_var_array()过滤多个变量;filter_var_array(array $data,filter);
实例演示:
<?php
$age=22;
$min=18;
$max=55;
$option=array("options"=>array("min_rag"=>$min,"max_rag"=>$max));
$age=filter_var($age,257,$option);
var_dump($age);
if(!$age){
echo "年龄不符合申请";
}else{
echo "年龄符合要求";
}
// filter_var_array()获取多个变量并过滤
$a=1;
$b=2;
$ab=[$a,$b];
var_dump(filter_var_array($ab,FILTER_VALIDATE_INT));
?>
通过http get/post请求发送的数据,过滤表单数据;
filter_input();filter_input(输入post/get,变量名,filter);
filter_input_array();filter_input_array(输入post/get,args规定了过滤器参数数组,键是变量名,值是过滤器)
实例演示:
<?php
$args = [
"username" => FILTER_SANITIZE_STRING,
"age" =>FILTER_VALIDATE_INT,
"blog_url" =>FILTER_VALIDATE_URL,
"ip"=>FILTER_VALIDATE_IP
];
echo '<hr>';
$options = ["options"=>["min_range"=>1]];
var_dump(filter_input(INPUT_GET,'id',FILTER_VALIDATE_INT,$options));
?>