常量便是不变的量。被定义后,在其他任何地方都不能改变。一个常量有英笔墨母、数字和和下划线组成,数字不能作为首字母涌现。
定义常量:define(string constant_name,mixed value,case_sensitive=true)
constant_name 必选参数,常量名称,也便是标识符。

value 必须参数,常量的值
case_sensitive 可选参数,指定是否大小写敏感,true 表示不敏感
获取常量:
1、利用常量名称直接获取值
2、利用constant()函数获取
mixed constant(string constant_name)
constant_name 是获取常量的名称,也可以是存储常量名的变量。获取成功则返回常量的值,否则提示缺点信息。
判断常量是否已经定义,可以利用defined()函数
bool defined(string constant_name)
constant_name 是常量的名称,存在返回true,不存在返回 false
二、预定义常量
php定义了大量的预定义常量,不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库才会涌现,或者动态加载后,或者编译的时候包括进去。
这些预定义常量可以用来获取php中信息。E_开头的预定义常量,是php的缺点调试部分,可以参考error_reporting()函数。
常量名 解释
__FILE__ php程序文件名
__LINE__ php程序行数
__DIR__ 文件所在目录
PHP_VERSION php程序的版本
PHP_OS 实行php解析器的操作系统名称
TRUE 该常量是一个真值(true)
FALSE 该常量是一个假值(false)
NULL 一个null值
E_ERROR 该常量指到最近的缺点处
E_WARNING 该常量指到最近的警告处
E_PARSE 该常量指到解析语法有潜在问题处
E_NOTICE 该常量为发送不屈常处的提示但不一定是缺点处
ClassName::class 完全的类名
__CLASS__ 当前类的名称,包括其被解释的浸染区域
__FUNCTION__ 当前函数的名称,匿名函数为{closure}
__TRAIT__ trait的名字,包括其被解释的旁边区域
__METHOD__ 类的方法名
__NAMESPACE__ 当前命名空间的名称
把稳自 PHP 5.4 起 __CLASS__ 对 trait 也起浸染。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。
更多可以访问地址(https://www.php.net/manual/zh/reserved.constants.php)
php变量
一、变量声明和利用
变量是指在程序实行过程中数值可以变革的量。通过一个名字叫变量名来标识。系统为程序的每一个变量分配一个存储单元,变量名也便是打算机内存单元的命名,借助变量名就可以方位内存中的数据。
php利用变量可以不用声明变量,只须要为变量赋值就可以。变量名称要用$和标识名称表示,变量名是区分大小写的,可以利用字母和下划线开头,不能以数字字符开头。比如: $name=’aa’是可以的, $@s = ‘a’ 和 $123=123 就是非法的变量名称。
两个变量间的相互赋值是不会相互影响的,在原来变量被修正了也是不会发生变革的。但是如果是相互引用赋值,用不同的名字去访问同一个变量内容,当改变个中的一个变量的值的时候,另一个也是会发生变革的。如下面的示例:
<?php//直接赋值$s1 = "我还是我";$s2 = $s1;$s1 = "我被修正了";echo "s1:".$s1;echo "<br/>";echo "$2:".$s2;echo "<br/>";//引用赋值$s3 = "我在这里";$s4 = &$s3;$s3 = "我已经修正了";echo "s3:".$s3;echo "<br/>";echo "s4:".$s4;echo "<br/>";?>输出结果:s1:我被修正了$2:我还是我s3:我已经修正了s4:我已经修正了
二、变量浸染域
变量利用必须不仅须要符合定义规则,也要在有效范围内利用,超出了变量的利用范围,那么变量也就失落去了利用意义了。变量浸染域有局部变量,全部变量,静态变量。
局部变量:在函数内部定义的变量,浸染域就在所处函数
全局变量:被定义在函数以外的变量。浸染域是全体php文件,但在用户自定义函数内部是不可用的。如果希望在自定义函数内部可以利用全局变量,要利用global 关键字声明全局变量。
静态变量:能在函数调用结束后仍旧保留变量值,当再次回到其浸染域的时候,又可以连续利用原来的值。一样平常的变量在函数调用结束后,存储的数据值也会被清空,占用的内存空间也会被开释。利用静态变量,须要利用static 关键字声明变量。
在函数内部定义的变量,其浸染域为所在函数,如果在函数外赋值,将被认为是完备不同的另一个变量。退出声明变量的函数时,该变量和相应的值就会被打消。
<?php$a = "我在表面";function method(){$a = "我在里面";echo "在函数内部:".$a;echo "<br/>";}method();echo "在函数外部:".$a;?>输出结果:在函数内部:我在里面在函数外部:我表面
静态变量和普通变量同时输出一个数据:
<?phpfunction StaticPrint(){static $a=0;$a+=1; //静态变量+1echo $a.""; //输出静态变量}function OrdinaryPrint(){$a=0;$a+=1; //局部变量加1echo $a.""; //输出局部变量}for($i=0;$i<10;$i++){StaticPrint();}echo "<br/>";for($i=0;$i<10;$i++){OrdinaryPrint();}?>输出结果:123456789101111111111
全局变量的利用示例:
<?php$a= "我在这里,你看不到";$b = "我在这里,你可以看到";function method(){echo $a; //不能被调用,没有输出global $b; //global 在函数内部定义了echo $b; //会被调用}method();?>输出结果:
三、可变变量
可变变量是一种独特的变量,他许可动态地改变一个变量名称。事情事理是一个变量的名称由其余一个变量的值来作为这个可变变量的变量名,实现过程便是在变量的前面再多久一个美元符号“$”
<?php$a = "hello";$$a = "world";echo "$a ${$a}";echo "<br/>";echo "$a ${hello}";?>输出结果:hello world hello world
四、预定义变量
php的可以通过预定义变量获取到用户会话,用户操作系统环境,本地操作系统的环境等信息,他们在全局范围内自动生效。常见的预定义变量可以访问这个地址查看(https://www.php.net/manual/zh/language.variables.superglobals.php)
下节我们可以来看看运算符和它的优先顺序了。