php常量
常量,即值不变的量。常量被定义后,在脚本(PHP文件)的其他任何地方都不能改变。
定义方式
PHP中使用 define()
方法来定义常量。
//语法格式:
define(string constant_name, mixed value, case_sensitive = false);
//case_sensitive:大小写是否敏感,默认为false
获取常量值的方式
获取常量值有两种方式:
- 使用常量名直接获取
- 使用函数
constant()
获取
两者效果一样(都可以获取到某个已定义常量的值),但是使用函数可以 动态 输出不同的常量。
constant()函数
//语法
mixed constant(string const_name);
//const_name:要获取值的常量的名称,也可以是存储常量名的变量
//获取成功=>返回常量的值
//获取失败=>返回常量未定义(报错)
使用常量时,不能在常量名前添加$ 符号,不然会将常量转换成新的未定义变量使用,会导致报错。
判断常量是否定义
判断一个常量是否定义,使用函数 defined()
。
//语法
bool defined(string constant_name); //返回true | false
预定义常量
PHP中可以使用 预定义常量 来获取PHP中的信息。
常量名称 | 类型 | 说明 | __FILE__ | 默认常量 | 指PHP文件的名称及其所在路径 | __LINE__ | 默认常量 | 指PHP程序的行数 | __DIR__ | 默认常量 | 指PHP文件所在目录 | __CLASS__ | 类的名称(V 4.3.0) | 返回类的名称 | __FUNCION__ | 函数名称(V 4.3.0) | 返回该函数被定义时的名称 | __METHOD__ | 方法的名称(V 5.0.0) | 返回类的方法的名称 | PHP_VERSION | 内建常量 | 指当前PHP版本 | PHP_OS | 内建常量 | 指当前PHP解析器的操作系统的名称 | TRUE | 真值(true) | FALSE | 假值(false) | NULL | 空值(null) | E_ERROR | 指最近的错误之处 | E_WARNING | 指最近的警告之处 | E_PARSE | 指解析语法有潜在问题之处 | E_NOTICE | 指发生不同寻常的提示,但是不一定是错误处 |
---|
魔术常量
指的是PHP预定常量中的,以双下划线开头双下划线结尾的那几个常量,它们的值会随在脚本中的位置不同而改变。一共有8个(还有两个是__TRAIT__、__NAMESPACE__)。
echo __FILE__; //E:\WebProject\PHP_Study\first_day\demo1.php
echo '<br/>';
echo __LINE__; //4
echo '<br/>';
echo __DIR__; //E:\WebProject\PHP_Study\first_day
echo '<br>';
class test{
function _test(){
echo '类名为:' . __CLASS__;//类名为:test
echo '<br />';
echo '函数名为:' . __FUNCTION__;//函数名为:_test
echo '<br />';
echo '方法名为:' . __METHOD__;//方法名为:test::_test
}
}
$a = new test();//实例化
$a->_test();//调用方法
调试常量
预定义常量最后那几个以E+下划线开头的常量是用来调试的,需要搭配函数 error_reporting() 来使用。 error_reporting()函数 规定报告哪个错误,该函数设置当前脚本的错误报告级别,返回旧的错误报告级别。(报告级别,即错误代号,是数字)
//语法格式
error_reporting(report_level);
//report_level 可选。规定当前脚本的错误报告级别。值数字和常量名都能接受,但是,考虑未来的 PHP 版本的兼容性,推荐使用常量名。
//Disable error reporting
error_reporting(0);
//Report runtime errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//Report all errors
error_reporting(E_ALL);
PHP变量
变量是指在程序执行过程中数值可以变化的量。变量通过一个名字(变量名)来标识的。系统为程序中的每一个变量分配一个存储单元,变量名实质上就是计算机内存单元的命名。因此,借助变量名即可访问内存中的数据。
变量声明
PHP4之后,使用变量前无需声明,只需要直接为变量赋值即可。
命名规范
PHP中的变量名,以 \$+标识符
来表示。标识符由字母、下划线、数字组成,并且不能以数字开头,且区分大小写。
$a1 = 1;
$_a1 = 1;
$A = 1;
变量赋值
变量赋值,指的是给变量赋予一个具体的数据值。有两大种赋值方法:
- 直接赋值
- 间接赋值
直接赋值
字符串和数字类型的变量的赋值,可以通过 =
来实现。
$name = 'Maccx';
间接赋值
间接赋值分为两种:
- 变量间赋值
- 引用赋值
变量间赋值
赋值之后的两个变量,使用各自的内存,互不干扰。(点两瓶百威,各喝各的)
$name_A = 'Maccx';
$name_B = $name_A;//变量间赋值
$name_A = 'Deeing';
echo $name_A;//'Deeing'
echo $name_B;//'Maccx'
引用赋值
用不同的名字访问同一个变量内容,当改变其中一个变量的时候,另一个也跟着变。使用 &
符号表示引用。(点一瓶百威,两根吸管一起喝)
$a = 1;
$b = & $a;//引用赋值
$b = 2;
echo $a;//输出2
变量类别
- 局部变量
- 全局变量
- 静态变量
- 可变变量
- 预定义变量
变量作用域
变量须在有效范围内使用,如果变量超出有效范围,则变量失去了其意义。(广州的羊城通不能在别的省使用,因为羊城通的有效范围就是广州。)
局部变量
在函数内部定义的变量,叫做该函数的局部变量。其作用域就是所在函数的内部。
function test(){
$num = 1000;//定义一个局部变量,在函数test内部可以正常访问
echo $num;//输出1000
}
test();
echo "<br/>";
//在函数外部却没有这个变量
var_dump(isset($num));//输出false,不存在该变量
这是因为,一般变量会在函数调用结束后即刻销毁,其存储的数据值也会被清除,所在用的空间也会被释放。
全局变量
被定义在所有函数之外的变量,其作用域是整个PHP文件(除了用户自定义的函数)。如果希望在自定义函数内部也可以使用全局变量,则要在全局变量前使用 global
关键字对变量进行声明。
$global_var = '我是全局变量';
function test1(){
echo $global_var.'<br/>';//示警,说变量未定义,说明在函数内部无法访问全局变量
return __FUNCTION__.'<br/>';
}
function test2(){
return __FUNCTION__.'<br/>';
}
function test3(){
return __FUNCTION__.'<br/>';
}
//.....假设下面还有很多函数
function use_global(){
global $global_var; //声明全局变量
echo $global_var;
return __FUNCTION__.'<br/>';
}
use_global();
test1();
静态变量
能够在函数调用结束后保留其数据值,当再次调用函数时(回到其作用域),又可以继续使用上一次的值。
静态变量和局部变量的区别就是,局部变量在函数调用结束后立刻被销毁,静态变量则不会。
使用静态变量时,使用 static
关键字来声明。
function use_static_var(){
static $num = 0;//声明静态变量
$n = 0;//声明局部变量
$num++;
$n++;
return '[静态变量:'.$num.' 局部变量:'.$n.']<br/>';
}
echo use_static_var();
echo use_static_var();
echo use_static_var();
可变变量
一种独特的变量,它允许动态改变一个变量的名称。其工作原理是 该变量的名称由另一个变量的值来确定。 实现过程就是在变量前再多加一个$符号。
$a = '我是a变量';
$b = 'a';//b变量存储着a变量的标识符(变量名)
echo $$b;//输出可变变量
预定义变量(超级全局变量)
超级全局变量,在一个脚本的全部作用域中可用。
名称 | 说明 | $GLOBALS | $GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。 | $_SERVER | $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。 | $_REQUEST | 用于收集HTML表单提交的数据。 | $_POST | $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。 | $_GET | $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。$_GET 也可以收集URL中发送的数据。 |
---|
详细的使用方法可以查阅菜鸟教程。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!