常量
常量使用
常量是一个简单值的标识符(名字)。常量默认为大小写敏感。按照惯例常量标识符总是大写的
常量特性
- 常量前面没有美元符号($)
- 常量只能用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);