常量
常量使用
常量是一个简单值的标识符(名字)。常量默认为大小写敏感。按照惯例常量标识符总是大写的
常量特性
- 常量前面没有美元符号($)
- 常量只能用define() 函数定义,而不能通过赋值语句
- 常量一旦定义就不能被重新定义或者取消定义
- 常量的值用来定义 整型,浮点,字符串,布尔值,数组(PHP7新增)
- 常量可以不用理会变量范围的可以在任何位置访问
将常量变为大小写不敏感
传入参数true
define('WEBNAME','houdunwang',true);
echo $webname
声明常量
常量可以使用 const
和 define
定义
区别:
-
const
是语言结构,在编译时要比define快 -
define
可以设置第三个参数为true
,来定义不区分大小写的常量 - 类文件中定义常量也使用
const
,所以const
统一易读
常量检测
defined()检测常量是否存在,返回true或false
$bool = defined('WEBNAME');
var_dump($bool); // 结果是false
系统常量
__DIR__ 文件所在目录
__FILE__ 文件路径
__LINE__ 程序代码行号
PHP_VERSION 显示PHP版本
PHP_OS 显示服务器的操作系统版本
TRUE boolean值真(true)支持小写常量
FALSE boolean值假(false)支持小写常量
__FUNCTION__ 函数名称
__METHOD__ 方法名称
__CLASS__ 类名称
- get_defined_constants() 可以获取当前可使用的所有常量
- get_defined_constants(true) 可以按分组显示所有常量
- get_defined_constants(true)['user'] 获得用户定义的常量
运算符
算术运算符
运算符 | 说明 |
---|---|
$a+$b | 加法 $a和$b的和 |
$a-$b | 减法 $a和$b的差 |
$a*$b | 乘法 $a和$b的积 |
$a/$b | 除法 $a除以$b的商 |
$a%$b | 取模 $a除以$b后的余 |
++$a | 前加 $a 的值先加一,然后进行操作 |
$a++ | 后加 $a 的值先进行操作,后加一 |
--$a | 前减 $a 的值先减一,然后进行操作 |
$a-- | 后减 $a 的值先进行操作,后减一 |
赋值运算符
运算符 | 说明 |
---|---|
= | 右边值赋值给左边变量 |
+= | 左边值加上右边值赋值给左边变量 |
-= | 左边值减掉右边值赋值给左边变量 |
*= | 左边值乘以右边值赋值给左边变量 |
/= | 左边值除以右边值赋值给左边变量 |
.= | 左边字符串连接到右边变量后面 |
%= | 左边值对右边值取余数后赋值给左边变量 |
字符串运算符
运算符 | 说明 |
---|---|
. | 它返回其左右参数连接后的字符串 |
.= | 左边字符串连接到右边变量后面 |
比较运算符
运算符 | 说明 |
---|---|
$a==$b |
等于 TRUE,如果$a等于$b,不同类型变量先进行转化,如0==false |
$a===$b |
全等于 TRUE,如果$a等于$b,并且类型也相同 |
$a!=$b |
不等 TRUE,如果$a不等于$b |
$a<>$b |
不等 TRUE,如果$a不等于$b |
$a!==$b |
非全等 TRUE,如果$a不等于$b,或者类型不同 |
$a<$b |
小于 TRUE,如果$a严格小于$b |
$a>$b |
大于 TRUE,如果$a严格$b |
$a<=$b |
小于等于 TRUE,如果 $a 小于或者等于$b |
$a>=$b |
大于等于 TRUE,如果 $a 大于或者等于$b |
逻辑运算符
运算符 | 说明 |
---|---|
$a and $b | 逻辑与 TRUE,如果 $a 与 $b 都为 TRUE |
$a or $b | 逻辑或 TRUE,如果 $a 或 $b 任一为TRUE |
!$a | 逻辑非 TRUE,如果 $a 不为 TRUE |
$a && $b | 逻辑与 TRUE,如果 $a 与 $b 都为TRUE |
$a || $b | 逻辑或 TRUE,如果 $a 或 $b 任一为TRUE |
-
and
与&&
、or
与||
是同一逻辑运算符的两种写法,但优先级不同 - 这四个符号的优先级从高到低是:&&、||、AND、OR
三元表达式
变量=(表达式)?值1:值2;
当表达式的返回值为true时,变量被赋予值1,否则被赋予值2
echo true?'1':'2'; //返回1
?? 与 ?:
$var=0;
echo $var?:'NO'; #NO
$var=0;
echo $var??'NO'; #输出0
PHP 7 新增加的 NULL 合并运算符??
是用于执行isset()
检测的三元运算的快捷方式,它为true
需满足两个条件:
- 变量必须存在
- 值不能为空
?:
只判断true
或false
??
经常用于判断数据库字段是否为空
屏蔽错误
@
运算符用于屏蔽表达式警告错误
@(20/0);