目录
1、标记
为了与其他内容做区分的一种特殊符号。
<?php
echo "Hello World!";
?>
2、数据类型
基本数据类型
类型 | 解释 |
---|---|
Boolean(布尔型) | 只有两个值:true;false |
String(字符串) | 连续的字符序列 |
Integer(整形) | 包含所有的整数(正数,负数,0) |
Float(浮点型) | 可以表示小数和指数 |
Boolean(布尔型)
只有两个值:true;false,且不区分大小写。
<?php
$x = True;
$y = faLsE;
var_dump($x, $y);
?>
--------输出--------
bool(true) bool(false)
ps: var_dump() 函数用于输出变量的相关信息。
String(字符型)
字符串是连续的字符序列,在其它语言中,字符和字符串是两种不同的数据类型,但在 PHP 中,统一将字符和字符串当作字符串数据类型。
定义字符串有三种方式,分别是单引号方式、双引号方式、Heredoc 方式。
<?php
//双引号方式声明字符串
$str1 = "H";
//单引号方式声明字符串
$str2 = 'Hello World!';
//Heredoc 方式声明字符串
$str3 = <<<EOF
url:
http://baidu.com
EOF;
echo $str1."<br>".$str2."<br>".$str3;
?>
-------输出------
H
Hello World!
url: http://baidu.com
Integer(整形)
整型的取值范围必须介于 -2E31 到 2E31 之间。
可以用三种格式来表示:十进制、十六进制(以 0x 为前缀)和八进制(以 0 为前缀)。
<?php
$x = 5985; // 定义一个整型数据类型的变量
var_dump($x); // 输出此变量
echo "<br>";
$x = -345;
var_dump($x);
echo "<br>";
$x = 0x8C; //十六进制数字
var_dump($x);
echo "<br>";
$x = 047; //八进制数字
var_dump($x);
?>
-----------输出----------
int(5985)
int(-345)
int(140)
int(39)
注意: PHP7 版本中,含有十六进制字符的字符串不再被视为数字,而是当作普通的字符串(PHP5 可以)
<?php
var_dump("0x123" == "291");
echo "<br/>";
var_dump(is_numeric("0x123"));
echo "<br/>";
var_dump("0xe" + "0x1");
?>
-----------输出-----------
bool(false)
bool(false)
Notice: A non well formed numeric value encountered in D:\xampp\htdocs\index.php on line 6
Notice: A non well formed numeric value encountered in D:\xampp\htdocs\index.php on line 6
int(0)
Float(浮点型)
精确度比整型数据类型要高 。
<?php
$num1 = 10.365;
$num2 = 2.4e3;
$num3 = 8E-5;
var_dump($num1, $num2, $num3);
?>
------输出---------
float(10.365) float(2400) float(8.0E-5)
复合数据类型
复合数据类型允许将多个类型相同的数据聚合在一起,表示为一个实体项。复合数据类型包括数组(Array)和对象(Object)。
Array(数组)
数据的集合,本质是存储管理和操作一组变量。
按照数组的维度划分,可以有一维数组、二维数组和多维数组。
用 array() 函数来创建数组。
<?php
$arr = array('key1' => 'value1', 'key2' => 'value2');
echo "<pre>";
var_dump($arr);
?>
-------输出--------
array(2) {
["key1"]=>
string(6) "value1"
["key2"]=>
string(6) "value2"
}
PS:<pre> 是一个 HTML 标签,用来格式化输出内容。不使用他的话,打印结果会变成一行。
Object(对象)
在支持面向对象的语言中,可以把各个具体事物的共同特征和行为抽象成一个实体,称之为一个“类”,而对象是类使用 new 关键字实例化后的结果。
<?php
class Car //使用 class 声明一个类对象
{
var $color;
function car($color="black") { //设置默认值
$this->color = $color;
}
function getColor() {
return $this->color;
}
}
$car = new Car();
$car->car('red');
echo $car->getColor();
?>
---------输出--------
red
特殊数据类型
在 PHP 中,有用来专门提供服务或数据的数据类型,它不属于上述标准数据类型中的任意一类,因此也被称为特殊数据类型,主要包括 NULL 和资源数据类型。
NULL
NULL 在 PHP 中是一种特殊的数据类型,表示空值(没有值)。
PHP的变量为NULL的几种情况:
- 变量被指定为NULL;
- 变量未被赋值前;
- 使用unset()函数删除一个变量后。
NULL值通常可以用来清空一个变量。
<?php
$str = 'String';
$str = NULL;
var_dump($str);
?>
-------输出-------
NULL
Resource(资源)
主要描述一个 PHP 的扩展资源,例如一个数据库查询(Query)、一个打开的文件句柄(fopen)或一个数据库连接(Database Connection)以及字符流(stream)等扩展类型。
我们并不能直接操作这个变量类型,只能通过专门的函数来使用。
例如使用 fopen 函数打开一个本地文件时:
<?php
header("content-type:text/html;charset=utf-8");//设置编码,解决中文乱码
$file = fopen("req.php", "rw");//打开test.txt文件
var_dump($file);
?>
--------输出---------
resource(3) of type (stream)
Resource 是 PHP 提供的较强特性之一,它可以在 PHP 脚本中做自定义的扩展,类似于C语言结构中的引用,它的所有属性都是私有的,我们可以暂时将其理解为面向对象中的一个实例化对象。
3、变量
声明变量
PHP 是一种弱类型的语言,所以使用变量前不用提前声明,变量在第一次赋值时会被自动创建。
声明 PHP 变量必须使用一个美元符号“$”后面跟变量名来表示,然后再使用“=”给这个变量赋值,最后使用";"结尾。
<?php
$a = 1;
$b = 2;
$c = 3;
echo $a.', '.$b.', '.$c;
?>
--------输出-----------
1, 2, 3
变量的命名规则
- 变量必须以 $ 符号开头,其后是变量的名称,$ 并不是变量名的一部分;
- 变量名必须以字母或下划线开头;
- 变量名不能以数字开头;
- 变量名只能包含字母(Az)、数字(09)和下划线(_);
- 与其它语言不通的是,PHP 中的一些关键字也可以作为变量名(例如 t r u e 、 true、 true、for)。
注意:PHP 中的变量名是区分大小写的,因此 $var 和 $Var 表示的是两个不同的变量。
正确的变量命名如下所示:
<?php
$name = "name";
$url = "http://www.baidu.com/";
$Url = "https://www.google.com/";
$_str = "PHP是世界上最好的语言";
echo $name.'<br>'.$url.'<br>'.$Url.'<br>'.$_str;
?>
----------输出------------
name
http://www.baidu.com/
https://www.google.com/
PHP是世界上最好的语言
错误示例:
<?php
$1122_num = 11111; // 变量名不能以数字开头
$~%_str = "PHP教程"; // 变量名不能包含特殊字符
?>
------输出----------
Parse error: syntax error, unexpected '1122' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' in D:\xampp\htdocs\index.php on line 2
4、变量作用域
PHP 中,全局变量不能直接在函数内部使用;而局部变量也不能直接在函数外部使用。
通过一些方法还是可以实现在函数内调用全局变量、在函数外调用局部变量的。
局部变量与局部作用域
只能在定义它的函数内使用。
<?php
function text(){
$a = 111;
echo $a."<br>";
}
text();
echo $a;
?>
----------输出------------
111
Notice: Undefined variable: a in D:\xampp\htdocs\index.php on line 7
可以看出在函数外,他就会找不到$a的值,并且报错。
全局变量与全局作用域
不能被函数直接使用。
<?php
$a = 111;
function text(){
echo $a."<br>";
}
text();
echo $a;
?>
----------输出------------
Notice: Undefined variable: a in D:\xampp\htdocs\index.php on line 4
111
通过运行结果可以看出,在函数内部并没有成功调用到 $a,但是在函数外部可以。
5、变量赋值
分为直接赋值、拷贝复制和引用赋值。
直接赋值
直接使用“=”将值赋给某变量。
<?php
$name = "PHP入门";
echo $name;
?>
拷贝赋值
就是将一个变量的值赋值给另一个变量,两个变量的内存地址不相同。
<?php
$a = 100;
$b = $a; // 将$a的值复制一份,传给$b
$a = 200; // 重新为 $a 赋值
echo '$a = '.$a.', $b = '.$b;
?>
--------输出----------
$a = 200, $b = 100
引用赋值
将一个变量的内存地址给另一个变量,两个变量共享同一个内存地址。
<?php
$a = 100;
$b = &$a; // 将$a的地址复制一份,传给$b
$a = 200; // 重新为 $a 赋值
echo '$a = '.$a.', $b = '.$b;
?>
-------输出-------
$a = 200, $b = 200
6、可变变量
PHP 中有一个特殊的变量——可变变量。
所谓可变变量与普通变量的区别就是,普通变量可以随便改变他的值,而可变变量是可以随便改变变量的名称。
声明可变变量只需要在变量名前加上至少两个“$”符号即可。
<?php
$demo = 'String';
$$demo = 'String的值';
echo $String.'<br>';
$name = 'PHP入门';
$str = 'name';
echo $$str.'<br>';
$url = 'http://www.baidu.com';
$website = 'url';
$link = 'website';
echo $$$link;
?>
----------输出----------
String的值
PHP入门
http://www.baidu.com
大家好好理解一下上面的代码,还是挺有意思的。
可变变量还可以用于数组,但是如果直接像上面的使用方式的话,会出现语义问题。
比如 KaTeX parse error: Can't use function '$' in math mode at position 9: a[0] 是将 $̲a[0] 作为变量名,还是 a 变量索引为 0 的值。也就是说到底 $a[0 ]是一个整体,还是 $a 是一个整体。
解决这个问题的语法是使用“{ }”将变量包裹,比如第一种情况用 KaTeX parse error: Expected '}', got 'EOF' at end of input: {a[1]} ;第二种情况用 KaTeX parse error: Expected '}', got 'EOF' at end of input: {a}[1] 。
<?php
$arr = array('PHP', 'PHP可变变量');
$str = 'arr';
echo ${$str}[0].'<br>'.${$str}[1].'<br>';
$demo = 'demoValue';
$test = 'testValue';
$arr2 = array('demo', 'test');
echo ${$arr2[0]}.'<br>'.${$arr2[1]};
?>
--------输出------------
PHP
PHP可变变量
demoValue
testValue
7、预定义变量
预定义变量又叫超全局变量,它们不需要提前声明就可以在所有的作用域中使用。
通过这些预定义变量可以获取用户会话、用户操作系统的环境和本地操作系统的环境等信息。
预定义变量基本上都是以数组形式存在的。
常用的预定义变量如下所示:
- $GLOBALS:全局作用域中的全部可用变量;
- $_SERVER:服务器和执行环境的信息;
- $_REQUEST:包含了 G E T , _GET, GET,_POST 和 $_COOKIE 的所有信息;
- $_POST:通过 POST 方法提交的数据;
- $_GET:通过 GET 方法提交的数据;
- $_FILES:通过 POST 方式上传到服务器的文件数据;
- $_ENV:通过环境方式传递给当前脚本的变量组成的数组;
- $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量所组成的数组;
- $_SESSION:当前脚本可用 SESSION 变量组成的数组。
具体演示请百度,这里不给出用例。
8、静态变量
静态变量是一个特殊的局部变量,普通的局部变量会在函数调用结束之后被销毁,不能继续使用了。而静态变量不同,静态变量在初始化之后,会在程序运行期间会一直存在。
和局部变量相比,静态变量具有一下特点:
- 当函数执行完毕后,静态变量不会消失;
- 静态变量只能在函数内部使用;
- 静态变量只会被初始化一次;
- 静态变量初始化的值可以省略,默认值为 null;
- 静态变量的初始值只能是具体的字符串、数值等,而不能是一个表达式。
PS: 在函数外面使用静态变量时并不会报错,这时它的生命周期与作用域和全局变量是一样的;在函数内部定义静态变量时,它的生命周期也和全局变量一样,但是作用域和局部变量的作用域一样的。
定义一个静态变量呢只需要用到 static 关键字就行了。
<?php
function demo(){
static $a;
$b = 0;
$a++;
$b++;
echo '第 '.$a.' 次运行 demo 函数, 局部变量 $b 的值为:'.$b.'<br>';
}
demo();
demo();
demo();
demo();
?>
----------输出----------
第 1 次运行 demo 函数, 局部变量 $b 的值为:1
第 2 次运行 demo 函数, 局部变量 $b 的值为:1
第 3 次运行 demo 函数, 局部变量 $b 的值为:1
第 4 次运行 demo 函数, 局部变量 $b 的值为:1
9、global与$GLOBALS:在函数内访问全局变量
global 关键字就是解决开始说的函数中无法直接使用外部定义的全局变量问题的。
使用 global 关键字需要注意一下几点:
- global 关键字,只能在函数内部使用,不能在函数外部使用;
- global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;
- 在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。
<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
global $a, $b;
echo "变量 a:".$a;
echo "<br>变量 b:".$b;
echo "<br>变量 c:".$c;
}
demo();
?>
-------输出------------
变量 a:1
变量 b:2
Notice: Undefined variable: c in D:\xampp\htdocs\index.php on line 9
变量 c:
与 global 关键字功能类似的还有 $GLOBALS, $GLOBALS 是一个预定义的超全局数组,其中包含了全局作用域中的所有可用变量,变量的名字就是数组的键。
<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
echo "变量 a:".$GLOBALS['a'];
echo "<br>变量 b:".$GLOBALS['b'];
echo "<br>变量 c:".$GLOBALS['c'];
}
demo();
?>
--------输出----------
变量 a:1
变量 b:2
变量 c:3
10、注释
分为单行注释和多行注释
单行注释
可以使用“#”或反斜杠“//” 。但一般使用"//"比较多。
<?php
#这是第一行注释
echo "百度<br>";
//这是第二行注释
echo "http://www.baidu.com";
// echo "PHP 注释";
?>
--------输出---------
百度
http://www.baidu.com
多行注释
<?php
/*
这是一个多行注释
输出网站名称及链接地址
*/
echo "百度<br>";
echo "http://www.baidu.com";
/* echo "PHP 注释"; */
?>
--------输出---------
百度
http://www.baidu.com
11、常量
所谓常量就是不能改变的量,PHP 中常量一旦被定义,就不能被修改或取消定义。
PHP 常量通常用来存储一个不被改变也不希望变化的数据,该数据只能是四种标量数据类型的数据:整型、浮点型、字符串、布尔型,不过从 PHP7 开始常量支持了数组(array)类型。
与变量相比,常量具有以下几个特点:
- 常量前面没有美元符号($);
- 常量只能用 define() 和 const 定义;
- 常量的作用域是全局的;
- 常量一旦被定义就不能被重新定义或者取消定义。
define定义常量
define 语法:
define(string $name, mixed $value [, bool $case_insensitive = false])
使用方式:
<?php
define('WebSite', '百度');
const url = 'http://www.baidu.com';
echo WebSite.'<br>';
echo url;
?>
--------输出---------
百度
http://www.baidu.com
constant定义常量
使用函数和直接使用常量名的效果是一样的。但使用函数可以动态输出不同的常量,在使用上要灵活、方便得多,constant() 函数的语法格式为:
constant 语法:
constant(string $name);
使用方式:
<?php
define('WebSite', '百度');
const url = 'http://www.baidu.com';
$website = 'WebSite';
$url = 'url';
echo constant($website).'<br>';
echo constant($url);
?>
--------输出---------
百度
http://www.baidu.com
判断常量是否存在
要判断一个常量是否已经定义,可以使用 defined() 函数。函数的语法格式如下:
defined(string $name)
其中 $name 为待判断的常量名称,函数会返回一个 bool 类型的值,常量已定义则返回 true,未定义则返回 false。示例代码如下:
<?php
define('WebSite', '百度');
const url = 'http://www.baidu.com';
var_dump(defined('WebSite'));
echo '<br>';
var_dump(defined('url'));
?>
--------输出---------
bool(true)
bool(true)
12、魔术常量与预定义常量
预定义常量
预定义常量顾名思义也就是 PHP 中预先定义好的常量,使用这些预定义常量可以帮助我们来获取一些 PHP 中的信息,比如,我们可以使用预定义常量来获取当前电脑的操作系统,当前使用的 PHP 版本信息等等。另外需要注意的是预定义常量是区分大小写的.
下面列举了一些 PHP 中的预定义常量:
- PHP_VERSION:当前 PHP 的版本号;
- PHP_OS:当前的操作系统名称;
- PHP_EOL:系统换行符,Windows 是(\r\n),Linux 是(\n),MAC 是(\r);
- PHP_INT_MAX:当前 PHP 支持的最大整数;
- PHP_INT_MIN:当前 PHP 支持的最小整数;
- PHP_EXTENSION_DIR:PHP 的扩展目录;
- TRUE:布尔类型的 true;
- FALSE:布尔类型的 false;
- NULL:Null 值。
魔术常量
魔术常量属于特殊的预定义常量,这些常量可以根据它们的使用位置而变化。魔术常量通常以两个下划线__
开头,并以两个下划线__
结尾。
PHP 中魔术常量有八个,如下所示:
- LINE :文件中的当前行号;
- FILE:当前文件的绝对路径(包含文件名);
- DIR:当前文件的绝对路径(不包含文件名),等价于 dirname(FILE);
- FUNCTION:当前函数(或方法)的名称;
- CLASS:当前的类名(包括该类的作用区域或命名空间);
- TRAIT:当前的 trait 名称(包括该 trait 的作用区域或命名空间);
- METHOD:当前的方法名(包括类名);
- NAMESPACE:当前文件的命名空间的名称。
注意:与预定义常量不同,魔术常量是不区分大小写的。
<?php
echo "当前文件的路径:".__file__;
echo "<br/>当前的行数:".__LINE__;
echo "<br/>当前PHP的版本信息:".PHP_VERSION;
echo "<br/>当前的操作系统:".PHP_OS;
?>
--------输出----------
当前文件的路径:D:\xampp\htdocs\index.php
当前的行数:3
当前PHP的版本信息:7.4.29
当前的操作系统:WINNT
13、定界符
定界符能够定义一段较长的字符串,并且可以按照原样输出在其内部的东西,包括换行、缩进等格式,在定界符中的任何特殊字符都不需要转义,而且定界符中的变量也能被解析。
格式:
<<<str
一段文本
str;
其中,符号<<<
是关键字,必须使用;str 为我们自定义的标识符,用来当作文本的起始标识符和结束标识符,前后的标识符名称必须完全相同。
另外,结束标识符后面的分号不能省略,同时结束标识符必须另起一行顶头写。还有就是标识符的命名必须遵循 PHP 中其他标签的命名规则:只能包含字母、数字、下划线,而且必须以下划线或非数字字符开始。
需要注意的是,使用定界符定义的字符串中虽然能解析变量,但是不能进行运算。
示例
<?php
$website = '百度';
$url = 'http://www.baidu.com';
$title = 'PHP 教程';
$str = <<<str
<!DOCTYPE html>
<html>
<head>
<title> $title </title>
</head>
<body>
您正在访问的是:<strong style="color:red">$website</strong><br>
网址:<a href="$url" target="_blank">$url</a>
</body>
</html>
str;
echo $str;
?>
---------输出----------
您正在访问的是:百度
网址:http://www.baidu.com
最后总结一下使用定界符<<<
的注意事项:
- 定界符标识必须前后一致;
- 可以任意定义定界符标识,比如 echo、html、div,尽量选用有意义的标识符,并遵循命名规范;
- 起始标识符后不能跟任何字符,空格也不可以,另起一行后再输入文本内容;
- 结束标识符后面要紧跟一个分号,并且前后都不能有任何字符,即结束标识要顶头写,且独占一行,其后除紧跟分号外,不能有任何字符(空格也不可以);
- 最后要注意的是,结束标识所在行不能成为脚本的最后一行,其下必须有空行或者其他代码行,否则报错。
14、运算符
算数运算符
+、-、*、/。
<?php
$a = -100;
$b = 70;
$c = 20;
echo '$a = '.$a.', $b = '.$b.', $c = '.$c.'<br>';
echo '$a + $b = '.($a + $b).'<br>';
echo '$a - $b = '.($a - $b).'<br>';
echo '$a * $c = '.($a * $c).'<br>';
echo '$b / $c = '.($b / $c).'<br>';
echo '$b % $c = '.($b % $c).'<br>';
?>
--------输出----------
$a = -100, $b = 70, $c = 20
$a + $b = -30
$a - $b = -170
$a * $c = -2000
$b / $c = 3.5
$b % $c = 10
ps: 在算术运算符中使用 % 求余,如果被除数($a)是负数,那么取得的结果也是一个负值。
字符串运算符
字符串运算符只有一个,即英文的句号“.”,它可以将两个字符串连接起来,拼接成一个新的字符串。
<?php
$str1 = '百';
$str2 = '度';
$str3 = $str1.$str2;
echo $str3;
?>
--------输出--------
百度
赋值运算符
最基本的赋值运算符是“=”,用于对变量进行赋值操作,而其他运算符可以和赋值运算符“=”联合使用,构成组合赋值运算符。
赋值运算符是把基本赋值运算符“=”右边的值赋给左边的变量。
<?php
$a = 9;
$b = 6;
echo '$a = '.$a.', $b = '.$b.'<br>';
echo '$a += $b 的值为:'.($a += $b).'<br>';
echo '$a -= $b 的值为:'.($a -= $b).'<br>';
echo '$a *= $b 的值为:'.($a *= $b).'<br>';
echo '$a /= $b 的值为:'.($a /= $b).'<br>';
?>
--------输出-----------
$a = 9, $b = 6
$a += $b 的值为:15
$a -= $b 的值为:9
$a *= $b 的值为:54
$a /= $b 的值为:9
位运算符
位运算符是指将二进制位从低位到高位对齐后进行运算。
<?php
$m = 8;
$n = 12;
echo '$m = '.$m.', $n = '.$n.'<br>';
echo '$m & $n = '.($m & $n).'<br>';
echo '$m | $n = '.($m | $n).'<br>';
echo '$m ^ $n = '.($m ^ $n).'<br>';
echo '~ $m = '.(~$m).'<br>';
echo '$m << $n = '.($m << $n).'<br>';
echo '$m >> $n = '.($m >> $n);
?>
---------输出----------
$m = 8, $n = 12
$m & $n = 8
$m | $n = 12
$m ^ $n = 4
~ $m = -9
$m << $n = 32768
$m >> $n = 0
递增和递减运算符
++和–。符号放变量前面代表先运算再赋值,放后面代表先赋值再运算。
<?php
$a = 5;
$b = 3;
$c = 8;
$d = 11;
echo '$a = '.$a.', $b = '.$b.', $c = '.$c.', $d = '.$d.'<br>';
echo '++$a = '.++$a.'<br>';
echo '$b++ = '.$b++.'<br>';
echo '--$c = '.--$c.'<br>';
echo '$d-- = '.$d--.'<br>';
?>
-------输出-----------
$a = 5, $b = 3, $c = 8, $d = 11
++$a = 6
$b++ = 3
--$c = 7
$d-- = 11
15、逻辑运算符
“&&”或“and” 逻辑与
左右两个条件同时为 TRUE 时,则结果为 TRUE;两个条件中有任意一个条件为 FALSE 时,则结果为 FALSE。当左边的条件为 FALSE 时,将直接跳过右边的条件直接返回 FALSE。
“||”或“or” 逻辑或
如果两个条件有一个为 TRUE,则结果为 TRUE;如果两个条件都是为 FALSE,则结果为 FALSE。当左边条件为 TRUE,将跳过右边条件的判断,直接返回 TRUE。
“!” 逻辑非
将一个布尔值进行取反操作。例如:!true = false、!false = true、!10 = false。
16、比较运算符
例子 | 名称 | 描述 |
---|---|---|
$a == $b | 等于 | 如果类型转换后 $a 和 $b 的值相等,则返回 TRUE,否则返回 FALSE |
$a === $b | 全等 | 如果 $a 和 $b 不仅值相等,而且它们值的类型也相等,则返回 TRUE,否则返回 FALSE |
$a != $b | 不等于 | 如果类型转换后 $a 的值不等于 $b 的值,则返回TRUE,否则返回 FALSE |
$a <> $b | 不等于 | 与 != 相同,如果类型转换后 $a 的值不等于 $b 的值,则返回 TRUE,否则返回 FALSE |
$a !== $b | 不全等 | 如果 $a 的值不等于 $b的值,或者它们值的类型不同,则返回 TRUE,否则返回 FALSE |
$a < $b | 小与 | 如果 $a 的值小于 $b 的值,则返回 TRUE,否则返回 FALSE |
$a > $b | 大于 | 如果 $a 的值大于 $b 的值,则返回 TRUE,否则返回 FALSE |
$a <= $b | 小于等于 | 如果 $a 的值小于或者等于 $b 的值,则返回 TRUE,否则返回 FALSE |
$a >= $b | 大于等于 | 如果 $a 的值大于或者等于 $b 的值,则返回 TRUE,否则返回 FALSE |
$a <=> $b | 太空船运算符(组合比较符) | 当 $a小于、等于、大于 $b时 分别返回一个小于、等于、大于0的整型值。 PHP7开始提供. |
$a ?? $b ?? $c | NULL合并操作符 | 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。 |
PS:我们要重点区分一下“等于”和“全等”,等于==
只是对两个变量的值进行了比较运算,而全等===
不仅会对运算符两边表达式的值进行比较,而且还会对数据类型进行比较,只有两边的值和数据类型都相等时,运算结果才是 TRUE。
另外,“不等于”和“不全等”也是如此,不等于!=
只对运算符两边表达式的值进行比较,而不全等!==
不仅会比较运算符两边表达式的值,还会对值的类型进行比较,当两边的值或者数据类型有任意一个不相等时,运算结果才是 TRUE。
17、三元运算符
三元运算符的语法格式如下:
(expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3
如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。
<?php
$a = 10;
$a % 2 == 0 ? print '$a 是偶数!' : print '$a 是奇数!';
?>
---------输出-------
$a 是偶数!
PS: 使用三元运算符时,如果需要打印字符串,建议使用 print 语句替代 echo 语句。