文章目录
1. 常量
常量值被定义后,在脚本的其他任何地方都不能被改变。
1.1 常量的定义和使用
在 PHP 中是通过使用 define( )函数来定义常量的。常量的命名与变量相似,也要遵循 PHP 标识符的命名规则。另外,声明常量默认还跟变量一样大小写敏感,按照惯例常量名称总是大写的, 但是不要在常量前面加上“$” 符号。define()函数的格式如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
- 区分大小写的常量名
<?php
// 区分大小写的常量名
define("CSDN", "欢迎访问 https://www.csdn.net/");
echo CSDN; // 输出 "欢迎访问 https://www.csdn.net/"
echo csdn; // 输出 "csdn",但是有警告信息,表示该常量未定义
?>
- 不区分大小写的常量名
<?php
// 不区分大小写的常量名
define("CSDN", "欢迎访问 https://www.csdn.net/", true);
echo CSDN; // 输出 "欢迎访问 https://www.csdn.net/"
echo csdn;// 输出 "欢迎访问 https://www.csdn.net/"
?>
- 常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
<?php
define("GREETING", "欢迎访问 Runoob.com");
function myTest() {
echo GREETING;
}
myTest(); // 输出 "欢迎访问 Runoob.com"
?>
1.2 常量和变量
常量和变量都是 PHP 的存储单元,但名称、作用域及声明方式都有所不同 ,以下是常量和变量的不同点。
- 常量前面没有美元符号 ( $ )。
- 常量只能用 define()函数定义,而不能通过赋值语句。
- 常量可以不用理会变量范围的规则而在任何地方定义和访问。
- 常量一旦定义就不能被重新定义或者取消定义,直到脚本运行结束自动释放。
- 常量的值只能是标量 ( boolean, integer, float 和 string 这 4 种类型之一)。
2. PHP中的运算符
- 运算符是一个命令解析器对一个或多个操作时(变量或数值)执行某种运算的符号,也称操作符。
- 根据操作数的个数分为一元运算符、二元运算符、三元运算符。
- 一元运算符只运算一个值,例如 !(取反运算符)或 ++(加一运算符)。
- 二元运算符可以运算两个值,PHP 支持的大多数运算符都是这种二元运算符,
- 三元运算符只有一个 (? : )。
- 如果按运算符的不同功能去分类 , 可以分为: 算术运算符、字符串运算符 、赋值运算符、比较运算符、逻辑运算符、位运算符和其他运算符 。
2.1 算数运算符
运算符 | 意义 | 描述 | 示例 | 结果 |
---|---|---|---|---|
+ | 加 | x 和 y 的和 | 2 + 2 | 4 |
- | 减 | x 和 y 的差 | 5 - 2 | 3 |
* | 乘 | x 和 y 的积 | 5 * 2 | 10 |
/ | 除 | x 和 y 的商 | 15 / 5 | 3 |
% | 模(除法的余数) | x 除以 y 的余数 | 5 % 2 | 1 |
++ | 累加1 | x 的值加 1 | ||
- - | 递减1 | x 的值减 1 |
<?php
$x=10;
echo ++$x; // 输出 11
$y=10;
echo $y++; // 输出 10
$z=5;
echo --$z; // 输出 4
$i=5;
echo $i--; // 输出 5
?>
2.2 字符串运算符
在 PHP 中字符串运算符只有一个,是英文的句号(" . "),也称为连接运算符。它是一个二元运算符,返回其左右参数连接后的字符串。这个运算符不仅可以将两个字符串连接起来,变成合并的新字符串,也可以将一个字符串和任何标量数据类型相连接,合并成的都是新的字符串。
<?php
$name = "Tom";
$age = 27;
$height = 1.71;
//将以上不同类型的变量使用点操作符和字符串连接起来,一起输出
//输出的结果为:我的名字是:Tom,我的年龄是:27,我的身高1.71米。
echo "我的名字是:".$name.",我的年龄是:".$age.",我的身高".$height."米。";
?>
2.3 赋值运算符
赋值运算符也是一个二元运算符,它左边的操作数必须是变量,右边可以是一个表达式。
<?php
$a = $b = $c = $d = 100;
$a += 10;
$b -= 10;
$c *= 10;
$d /= 10;
$e %= 10;
$result = "结果是:";
$result .= "\$a 自加 10 以后的值为:${a},"; //110
$result .= "\$b 自减 10 以后的值为:${b},"; //90
$result .= "\$c 自乘 10 以后的值为:${c},"; //1000
$result .= "\$d 自除 10 以后的值为:${d},"; //10
$result .= "\$e 自取余 10 以后的值为:${e}。"; //0
echo $result; //输出全部相连后的字符串结果
/* 结果是:
$a 自加 10 以后的值为:110,
$b 自减 10 以后的值为:90,
$c 自乘 10 以后的值为:1000,
$d 自除 10 以后的值为:10,
$e 自取余 10 以后的值为:0。
*/
?>
2.4 比较运算符
比较运算符也称关系运算符,又称条件运算符,也是一种经常用到的二元运算符,用于对运算符两边的操作数进行比较。比较运算符的结果只能是布尔值,如果比较的关系为真,则结果为TRUE, 否则结果为 FALSE。
运算符 | 名称 | 描述 | 实例 |
---|---|---|---|
x == y | 等于 | 如果 x 等于 y,则返回 true | 5==8 返回 false |
x === y | 绝对等于 | 如果 x 等于 y,且它们类型相同,则返回 true | 5===“5” 返回 false |
x != y | 不等于 | 如果 x 不等于 y,则返回 true | 5!=8 返回 true |
x <> y | 不等于 | 如果 x 不等于 y,则返回 true | 5<>8 返回 true |
x !== y | 绝对不等于 | 如果 x 不等于 y,或它们类型不相同,则返回 true | 5!==“5” 返回 true |
x > y | 大于 | 如果 x 大于 y,则返回 true | 5>8 返回 false |
x < y | 小于 | 如果 x 小于 y,则返回 true | 5<8 返回 true |
x >= y | 大于等于 | 如果 x 大于或者等于 y,则返回 true | 5>=8 返回 false |
x <= y | 小于等于 | 如果 x 小于或者等于 y,则返回 true | 5<=8 返回 true |
2.5 逻辑运算符
逻辑运算用来判断一件事情是" 对 “的还是” 错 “的,或者说是” 成立 " 还是" 不成立 "。逻辑运算符只能操作布尔型数值。处理后的结果值也是布尔型数值。
2.6 位运算符
任何信息在计算机中都是以二进制数的形式保存的,位运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作字符的 ASCII 值,浮点数也会自动转换为整型再参与位运算。位运算用于对操作数中的每一个二进制位进行运算,包括位逻辑运算符和位移运算符。
2.6.1 按位与( & )
规则是参加运算的两个运算量相应位均为 1 时该位为 1, 否则为 0。即
- 0 & 0 = 0;
- 0 & 1 = 0;
- 1 & 0 = 0;
- 1 & 1 = 1
<?php
$a = 20;
$b = 30;
$c = $a & $b;
echo $c; //输出的结果为 20
?>
2.6.2 按位或( | )
规则是参加运算的两个运算量相应位有一位为 1 时该位为 1 ,否则为 0 。即
- 0 | 0 = 0;
- 0 | 1 = 1;
- 1 | 0 = 1;
- 1 | 1 = 1;
<?php
$a = 20;
$b = 30;
$c = $a | $b;
echo $c; //输出的结果为 30
?>
2.7 其他运算符
2.7.1 三元运算符 ( ? : )
- 语法格式:
(expr1) ? (expr2) : (expr3)
在 expr1 求值为 true 时,执行 " ? " 和 " : " 之间的 expr2 并获取其值,在 expr1 求值为 false 时,执型 " : " 之后的 expr3 并获取其值。
<?php
$store = 12;
$store = $store <= 5 ? "库存不足!" : "库存量:".$store;
echo $store;// 输出的结果为:库存量:12
?>
2.8 运算符的优先级
下表从高到低列出了运算符的优先级。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
级别(从高到低) | 运算符 | 结合方向 |
---|---|---|
1 | clone、new | 无结合 |
2 | [ | 从左到右 |
3 | ++ -- | 无结合 |
4 | ! ~ - (int) (float) (string) (array) (object) @ | 无结合 |
5 | * / % | 从左到右 |
6 | + - | 从左到右 |
7 | << >> | 从左到右 |
8 | < <= > >= | 无结合 |
9 | == != === !== | 无结合 |
10 | & | 从左到右 |
11 | ^ | 从左到右 |
12 | | | 从左到右 |
13 | && | 从左到右 |
14 | || | 从左到右 |
15 | ? : | 从左到右 |
16 | = += -= *= /= .= %= &= |= ^= <<= >>= | 从左到右 |
17 | and | 从左到右 |
18 | xor | 从左到右 |
19 | or | 从左到右 |
20 | , | 从左到右 |
3. 表达式
在PHP中,几乎所编写的任何代码都可以看做是一个表达式,通常是变量、常量和运算符号的组合。简单但却最精确地定义一个表达式的方式就是“任何有值的东西”。以下列出来一些比较常用的表达式,如下所示:
- 最基本的表达式形式是常量和变量,例如赋值语句$a=5;
- 稍微复杂的表达式就是函数,例如 $a = foo();
- 使用算术运算符中的前、后递增和递减也是表达式,例如 $a++、$a–、++$a、–$a;
- 常用到表达式类型是 " 比较表达式 ",例如:$a>5、$a>=5、$a>=5&&$a<=10;
- 组合的运算赋值也是常用的表达式,例如$a+=5、$a*=5、$b=($a+=5);
- 三元运算符 ( ? : ) 也是一种表达式,例如$v = ($a ? $b=5 : $c=10).