php常量
一、声明和使用常量
常量就是不变的量。被定义后,在其他任何地方都不能改变。一个常量有英文字母、数字和和下划线组成,数字不能作为首字母出现。
定义常量: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 方法的类的名字。
更多可以访问地址( )
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;
?>
输出结果:
在函数内部:我在里面
在函数外部:我外面
静态变量和普通变量同时输出一个数据:
<?php
function StaticPrint(){
static $a=0;
$a+=1; //静态变量+1
echo $a.""; //输出静态变量
}
function OrdinaryPrint(){
$a=0;
$a+=1; //局部变量加1
echo $a.""; //输出局部变量
}
for($i=0;$i<10;$i++){
StaticPrint();
}
echo "<br/>";
for($i=0;$i<10;$i++){
OrdinaryPrint();
}
?>
输出结果:
12345678910
1111111111
全局变量的使用示例:
<?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的可以通过预定义变量获取到用户会话,用户操作系统环境,本地操作系统的环境等信息,他们在全局范围内自动生效。常见的预定义变量可以访问这个地址查看( )
下节我们可以来看看运算符和它的优先顺序了。