php 正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

PCRE 函数

函数描述
preg_filter执行一个正则表达式搜索和替换
preg_grep返回匹配模式的数组条目
preg_last_error返回最后一个PCRE正则执行产生的错误代码
preg_match_all执行一个全局正则表达式匹配
preg_match执行一个正则表达式匹配
preg_quote转义正则表达式字符
preg_replace_callback_array执行一个正则表达式搜索并且使用一个回调进行替换
preg_replace_callback执行一个正则表达式搜索并且使用一个回调进行替换
preg_replace执行一个正则表达式的搜索和替换
preg_split通过一个正则表达式分隔字符串

PREG 常量

常量描述自哪个版本起
PREG_PATTERN_ORDER结果按照”规则”排序,仅用于preg_match_all(), 即$matches[0]是完整规则的匹配结果, $matches[1]是第一个子组匹配的结果,等等。since
PREG_SET_ORDER结果按照”集合”排序,仅用于preg_match_all(), 即$matches[0]保存第一次匹配结果的所有结果(包含子组)信息, $matches[1]保存第二次的结果信息,等等。 
PREG_OFFSET_CAPTURE查看PREG_SPLIT_OFFSET_CAPTURE的描述。4.3.0
PREG_SPLIT_NO_EMPTY这个标记告诉 preg_split() 进返回非空部分。 
PREG_SPLIT_DELIM_CAPTURE这个标记告诉 preg_split() 同时捕获括号表达式匹配到的内容。4.0.5
PREG_SPLIT_OFFSET_CAPTURE如果设置了这个标记,每次出现的匹配子串的偏移量也会被返回。注意,这会改变返回数组中的值, 每个元素都是由匹配子串作为第0个元素,它相对目标字符串的偏移量作为第1个元素的数组。这个 标记只能用于 preg_split()。4.3.0
PREG_NO_ERROR没有匹配错误时调用 preg_last_error() 返回。5.2.0
PREG_INTERNAL_ERROR如果有PCRE内部错误时调用 preg_last_error() 返回。5.2.0
PREG_BACKTRACK_LIMIT_ERROR如果调用回溯限制超出,调用preg_last_error()时返回。5.2.0
PREG_RECURSION_LIMIT_ERROR如果递归限制超出,调用preg_last_error()时返回。5.2.0
PREG_BAD_UTF8_ERROR如果最后一个错误时由于异常的utf-8数据(仅在运行在 UTF-8 模式正则表达式下可用)。 导致的,调用preg_last_error()返回。5.2.0
PREG_BAD_UTF8_OFFSET_ERROR如果偏移量与合法的urf-8代码不匹配(仅在运行在 UTF-8 模式正则表达式下可用)。 调用preg_last_error()返回。5.3.0
PCRE_VERSIONPCRE版本号和发布日期(比如: “7.0 18-Dec-2006“)。5.2.4

PHP字符串函数

字符串的连接

使用“.”运算符可以把两个或两个以上的字符串连接成一个字符串。

implode函数的使用

string implode(string glue,arrat array)

其中 glue 表示连接数组元素的字符,array表示需要连接的字符数组。

strlen函数的使用

string strlen(string string)

在PHP中,strlen函数可以用来获取字符串的长度。

字符串的去除

用于去除字符串首尾空白等特殊符号或者指定字符序列相关函数包括以下几个。

trim()函数

string trim(string str[, charlist])

该函数表示去除字符串str首尾的特殊字符,这个字符都保存在charlist 中, charlist 是可选参数,如果不设置,则charlist的默认值“ \t\n\r\0\x0B”。charlist的默认值所涉及的字符表示“空格 制表符 换行符 回车符 空字节符 垂直制表符”

rtrim()和ltrim()和trim()相似,只不过只去除左边或者右边的字符。

字符串的分割

字符串的分割通常按照一定的规则来进行,常用的字符串分割如下所述。

explode()函数

该函数使用字符串作为分割符,它的语法格式如下:

array explode(string separator,string string[,int limit])

该函数表示把字符串string用字符串separator分割,limit参数是可选参数,如果将limit设置为正数,怎返回的数组包括limit个元素,且最后一个元素会包含字符串string的剩余部分;如果将limit设置为负数,则返回的数组包含除最后limit个元素外的所有元素。

str_split()

str_split() 和 explode() 不同的是,str_split()是按照长度来分割的,它的语法格式如下:

arrat str_split(string string[, int length])

其中,length 是可选参数,默认值是1 如果设置了该参数,则其值不可小于1

字符串的检索

strpos()

strpos()用来定位字符串第一次出现的位置,并返回其下标值,它的语法格式是:

int strpos(string string,string needle [, int offset])

其中 needle 表示要定位的字符串,offset是可选参数,表示检索会从该字符串的第offset个字符处开始,如果该参数是负值,表示检索会从字符串尾部倒数offset位置开始。

strrpos()

该函数用来定位字符串最后一次出现的位置,并返回其下标值,它的语法格式如下:

int strrpos(string string,string needle[, int offset])

该函数的参数意义和strpos()相同,不同的是,strrpos()函数用于返回指定字符串最后出现的位置。

stripos()

stripos()函数的使用方法与strpos()函数相同,区别是stripos()函数不区分大小写。它的语法格式如下:

int stripos(string string,string needle[,int offset])

strtipos()

strripos()函数的使用方法与strrpos()函数相同,区别是strtipos()函数不区分大小写。

int strtipos(string string,string needle[, int offset])

strstr()

strstr() 函数用来查找指定字符串的首次出现位置,并返回字符串的一部分,它的语法格式如下:

string strstr(string string,string needle[, bool before_needle])

其中 string 和 needle 的意义与之前的检索函数相同。before_needle是可选参数,默认值为false, 表示返回needle在string中首次出现的位置之后的部分(包含needle), 如果将参数设置为true,则返回needle在string中之前的位置之前的部分(不包括needle)。

strrchr()

strrchar()有点类似于strstr()函数,区别在于 strtchar()函数是查找指定字符在字符串中最后一次出现的位置,并返回指定字符串及其之后的部分,它的语法格式如下:

string stttchar(string string,string needle)

stristr()

该函数和strstr()函数完全一致,区别是不区分大小写。

substr_count()函数

int substr_count(string string,string needle[,int offset[,int length]])

该函数表示字符串string中检索needle出现的次数,offset是可选参数,指定从字符串string的什么位置开始检索,length也是可选参数,指定最大检索长度。

字符串的截取

substr()

substr()函数可以用来截取字符串,它的语法格式如下:

string substr (string string,int start[,int length])

其中start表示从什么位置开始截取字符串,如果该参数是正数,则表示从字符串string的第start个函数开始返回字符串(包含start位置)。如果该参数是负数,则表示从字符串string的结尾处向前start个字符串开始返回的字符串

length是可选参数 表示截取的字符串的长度。

字符串的替换

substr_replace()

该函数可以把字符串的一部分替换成另一个字符串,并返回混合类型,它的语法格式如下

mixed substr_replace(mixed string,string replacement,int start[,int length])

其中string 表示要处理的字符串,replacement表示要插入的字符串,start表示要替换操作的开始位置,起始位置为0,如果参数为正数,则从start位置开始替换,如果该参数是负数,则从字符串string的倒数第start位置开始替换。

。。。。。。

str_replace()函数

str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。

该函数必须遵循下列规则:

  • 如果搜索的字符串是数组,那么它将返回数组。
  • 如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。
  • 如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
  • 如果查找的是数组,而替换的是字符串,那么替代字符串将对所有查找到的值起作用。

注释:该函数区分大小写。请使用 str_ireplace() 函数执行不区分大小写的搜索。

注释:该函数是二进制安全的。

strcmp() 函数比较两个字符串。

注释:strcmp() 函数是二进制安全的,且对大小写敏感。

提示:该函数与 strncmp() 函数类似,不同的是,通过 strncmp() 您可以指定每个字符串用于比较的字符数。

语法

strcmp(string1,string2)
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。

技术细节

返回值:本函数返回:0 – 如果两个字符串相等<0 – 如果 string1 小于 string2>0 – 如果 string1 大于 string2
PHP 版本:4+

strcasecmp不区分大小写,strcmp区分大小写

strnatcmp() 函数使用一种”自然”算法来比较两个字符串。

在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。

注释:该函数对大小写敏感。

语法

strnatcmp(string1,string2)
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。

技术细节

返回值:本函数返回:0 – 如果两个字符串相等<0 – 如果 string1 小于 string2>0 – 如果 string1 大于 string2
PHP 版本:4+

strncmp() 函数比较两个字符串。

注释:strncmp() 是二进制安全的,且对大小写敏感。

提示:该函数与 strcmp() 函数类似,不同的是,strcmp() 没有 length 参数。

语法

strncmp(string1,string2,length)
参数描述
string1必需。规定要比较的首个字符串。
string2必需。规定要比较的第二个字符串。
length必需。规定比较中所用的每个字符串的字符数。

技术细节

返回值:本函数返回:0 – 如果两个字符串相等<0 – 如果 string1 小于 string2>0 – 如果 string1 大于 string2
PHP 版本:4+

hello php

启动服务器

打开hbuilder

注意路径要是xampp的安装路径下的htdocs目录里才可以被访问

打开hubilder的设置-》运行配置

设置chrome浏览器地址和外部web服务器调用Url地址

在index.html中输入测试字符,尝试运行

php的写法

  • <?php ….?>
  • <script type=”text/php”> … </script>
  • <? … ?>
  • <% … %>

创建php文件

写入代码

<?php
	echo "hello php";
?>

运行

PHP注释

<?php
	// 单行注释
	//echo "hello php";
	# echo "hello php"; shell 风格注释
	// 多行注释
	/*
	echo "hello php";
	*/
   //快捷键 ctrl + /
?>

数据类型

PHP 的 数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。

php的字符串

单引号:直接用单引号引起来,所有内容都不会被解析。

双引号:直接用双引号引起来,包含的变量会被解析。

Heredoc结构

<<< 操作符:操作符后连接标识符(开始标识符)和换行符,标识符可以自定义,一般为EOD、EOF、EOT 等。

输入要引用的字符串,字符串可以正常解析变量,但不能解析函数。

最后下新的一行顶格写标识符(结束标识符),并连接分号结束,这一行里不允许有其他内容。

注意:新的一行,顶格写,且后面不允许有其他内容

Nowdoc结构

结构与Heredoc结构类似,但其不同的是,Nowdoc结构类似于单引号引起来的字符串,所以Nowdoc结构中的所有内容都不进行解析,通常用于嵌入php代码或者其他大段包含很多特殊字符串的文本,在Nowdoc中这些内容都不需要转义,他的使用方法和 Heredoc结构也很类似,唯一不同的是开始标识符需要使用单引号引起来。

和 heredoc 的区别是开始标识符需要用时单引号引起来,且内容不会被解析

php的转义字符

PHP的整形

<?php
$a = 1234; // 十进制数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
$a = 0b11111111; // 二进制数字 (等于十进制 255)
$a = 1_234_567; // 整型数值 (PHP 7.4.0 以后)
?>

来自官方文档

PHP的复合数据类型

复合数据类型可以用于将多个相同类型的项聚集起来,表示为一个实体。这包括数据(arrary)和对象(object)

//  php定义数据的方法  
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// 自 PHP 5.4 起
$array = [
    "foo" => "bar",
    "bar" => "foo",
];

php 特殊类型

NULL: 空值,表示变量没有数值,是一种特殊的值

resource: 资源,也叫作句柄,是一种特殊的变量,能够保存一个到外部资源的引用,通常用专门的函数来定义和使用。

fileopen函数返回资源类型

php 数据类型检测

  • isset()://变量是否已经声明 
  • empty()://变量是否为空 
  • defined()://常量是否已经定义 define() 
  • array_key_exists(mixed key, array search)://检查给定的键名或索引是否存在于数组中
  • is_numeric ( mixed var )://检测变量是 否为数字或数字字符串 
  • is_bool():// 检测变量是否是布尔型 
  • is_float():// 检测变量是否是浮点型 和is_double,is_real()都一样的用法 
  • is_int(): // 检测变量是否是整数is_integer() 一样的 用法 
  • is_string():// 检测变量是否是字符串 
  • is_object():// 检测变量是否是一个对象 
  • is_array():// 检测变量是否是数组 
  • is_null():// 检测变量是否为 NULL 值是否是NULL大小写敏感
  • var_dump()://直接打印数据类型[常用]
函数名作用返回值
is_array(mixed $var)判断变量是否为数组如果参数 $var 为数组则返回 TRUE,否则返回 FALSE
is_bool(mixed $var) 判断变量是否为布尔类型如果参数 $var 为布尔类型的值则返回 TRUE,否则返回 FALSE
is_float(mixed $var) 判断变量是否为浮点数如果参数 $var 为浮点数则返回 TRUE,否则返回 FALSE
is_int(mixed $var)判断变量是否为整数类型如果参数 $var 为整数类型则返回 TRUE,否则返回 FALSE
is_null(mixed $var)判断变量是否为 NULL 如果参数 $var 未被定义,或者被设置为 NULL 则返回 TRUE,否则返回 FALSE
is_numeric(mixed $var)判断变量是否为数字或者数字字符串如果参数 $var 为数字或者数字字符串则返回 TRUE,否则返回 FALSE
is_object(mixed $var)判断变量是否为一个对象如果参数 $var 为一个对象则返回 TRUE,否则返回 FALSE
is_scalar(mixed $var)判断变量是否为一个标量(标量即最小的变量单位,只包括
integer、float、string 或 bool 类型的变量,而 array、
object 和 resource 则不是标量)
如果参数 $var 为标量则返回 TRUE,否则返回 FALSE
is_string(mixed $var) 判断变量是否为字符串如果参数 $var 为字符串则返回 TRUE,否则返回 FALSE
isset(mixed $var) 判断变量是否已经定义如果参数 $var 已经存在则返回 TRUE,否则返回 FALSE。
注意:被设置为 NULL 的变量在使用 isset() 时将返回 FALSE

PHP 类型转换

第一种方式:允许的强制转换有:

  • (int),(integer)            – 转换成整型
  • (bool),(boolean)           – 转换成布尔型
  • (float),(double),(real)    – 转换成浮点型
  • (string)                  – 转换成字符串
  • (array)                    – 转换成数组
  • (object)                   – 转换成对象

第二种转换方式:  intval()  floatval()  strval()

<?php   
$str="123.9abc";   
$int=intval($str);     //转换后数值:123   
$float=floatval($str); //转换后数值:123.9   
$str=strval($float);   //转换后字符串:"123.9"    
?>  

第三种方式:还可以用settype ( mixed var, string type )进行强制转换.

<?php   
$num4=12.8;   
$flg=settype($num4,"int");   
var_dump($flg);  //输出bool(true)   
var_dump($num4); //输出int(12)   
?>

非0=真

0=假

数组排序

PHP数组中的元素可以按字母或数字顺序进行降序或升序排列。PHP数组排序函数方法有:sort()、rsort() 、asort() 、ksort()、arsort()、krsort()。

PHP – 数组排序函数

php数组排序的方法有哪些?

  • sort() – 对数组进行升序排列
  • rsort() – 对数组进行降序排列
  • asort() – 根据关联数组的值,对数组进行升序排列
  • ksort() – 根据关联数组的键,对数组进行升序排列
  • arsort() – 根据关联数组的值,对数组进行降序排列
  • krsort() – 根据关联数组的键,对数组进行降序排列

sort() – 对数组进行升序排列

sort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。数值数组

参数

array

要排序的数组。

sort_flags

可选的第二个参数 sort_flags 可以用以下值改变排序的行为:

排序类型标记:

  • SORT_REGULAR – 正常比较单元(不改变类型)
  • SORT_NUMERIC – 单元被作为数字来比较
  • SORT_STRING – 单元被作为字符串来比较
  • SORT_LOCALE_STRING – 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。
  • SORT_NATURAL – 和 natsort() 类似对每个单元以”自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。
  • SORT_FLAG_CASE – 能够与 SORT_STRINGSORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

rsort() – 对数组进行降序排列

rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

本函数对数组进行逆向排序(最高到最低)。数值数组

参数

array

输入的数组。

sort_flags

可以用可选参数 sort_flags 改变排序的行为,详情见 sort()。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

asort() – 根据数组的值,对数组进行升序排列

asort — 对数组进行排序并保持索引关系

参数

array

输入的数组。

sort_flags

可以用可选的参数 sort_flags 改变排序的行为,详情见 sort()。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

ksort() – 根据数组的键,对数组进行升序排列

ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

对数组按照键名排序,保留键名到数据的关联。本函数主要用于关联数组。

参数

array

输入的数组。

sort_flags

可以用可选参数 sort_flags 改变排序的行为,详情见 sort()。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

arsort() – 根据数组的值,对数组进行降序排列

arsort — 对数组进行逆向排序并保持索引关系

参数

array

输入的数组。

sort_flags

可以用可选的参数 sort_flags 改变排序的行为,详情见 sort()。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

krsort() – 根据数组的键,对数组进行降序排列

krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

对数组按照键名逆向排序,保留键名到数据的关联。主要用于结合数组。

参数

array

输入的数组。

sort_flags

可以用可选参数 sort_flags 改变排序的行为,详情见 sort()。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

数组

数组是一个能在单个变量中存储多个值的特殊变量。php数组,顾名思义就是PHP中的数组。其特点就是将values映射到keys的类型。与其他语言不同的是,PHP中数组的key可以是字符串,而values可以是任意类型。

在 PHP 中创建数组

在 PHP 中,array() 函数用于创建数组:

array();

在 PHP 中,有三种类型的数组:

  • 数值数组 – 带有数字 ID 键的数组
  • 关联数组 – 带有指定的键的数组,每个键关联一个值
  • 多维数组 – 包含一个或多个数组的数组

PHP 数值数组

这里有两种创建数值数组的方法:

自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";

获取数组的长度 – count() 函数

count() 函数用于返回数组的长度(元素的数量):

PHP 关联数组

关联数组是使用您分配给数组的指定的键的数组。

这里有两种创建关联数组的方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

遍历关联数组

遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

switch

PHP Switch 语句, switch 语句用于根据多个不同条件执行不同动作。 PHP Switch 语句 如果您希望有选择地执行若干代码块之一,请使用 switch 语句。

PHP Switch 语句

如果您希望有选择地执行若干代码块之一,请使用 switch 语句。

switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}

工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。

if else

PHP If…Else 语句 ,条件语句用于根据不同条件执行不同动作。 PHP 条件语句 当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。

PHP 条件语句

当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。

在 PHP 中,提供了下列条件语句:

  • if 条件语句 – 在条件成立时执行代码
  • if…else 语句 – 在条件成立时执行一块代码,条件不成立时执行另一块代码
  • if…else if….else 语句  – 在若干条件之一成立时执行一个代码块
  • switch 语句 – 在若干条件之一成立时执行一个代码块

PHP – if 条件语句

if 条件语句用于仅当指定条件成立时执行代码

if (条件)
{
条件成立时要执行的代码;
}

PHP – if…else 语句

在条件成立时执行一块代码,条件不成立时执行另一块代码,请使用 if….else 语句。

if (条件)
{
 条件成立时执行的代码;
}
else
{
 条件不成立时执行的代码;
}

PHP – if…else if….else 语句

在若干条件之一成立时执行一个代码块,请使用 if….else if…else 语句。.

if (条件)
 {
 if 条件成立时执行的代码;
 }
else if (条件)
 {
 elseif 条件成立时执行的代码;
}
else
 {
 条件不成立时执行的代码;
}

vscode+phpstudy

php.ini

xdebug.remote_autostart = 1

这个要加上 不然无法断点调试

不加效果:启动调试后一秒自动停止

setting.json

php.validate.executablePath 的值是个地址,斜杠应该用‘/’而不是‘\’;

phpstudy pro

单击 设置 配置文件 php7.3.4nts 可以直接打开php.ini
不用傻傻跑到文件夹里找了

PHP IntelliSense

这个插件很强大 可以提示很多php语法,安装就可以用

这个插件可以运行很多语言编写的程序 但是不能中断调试 不过还是很方便

这个插件可以运行很多语言编写的程序 但是不能中断调试 不过还是很方便

在调试控制台输出或者是说在本地运行php程序 要把环境变量配置一下

要想在调试控制台输出或者是说在本地运行php程序 要把环境变量配置一下

运算符

php运算符包括算数运算符、赋值运算符、递增\递减运算符、比较运算符、逻辑运算符、数组运算符、三元运算符、组合比较符。

PHP 算术运算符

运算符 名称 描述 实例 结果
x + y x 和 y 的和 2 + 2 4
x – y x 和 y 的差 5 – 2 3
x * y x 和 y 的积 5 * 2 10
x / y x 和 y 的商 15 / 5 3
x % y 模(除法的余数) x 除以 y 的余数 5 % 2 10 % 8 10 % 2 1 2 0
– x 取反 x 取反 – 2 2
a . b 并置 连接两个字符串 “Hi” . “Ha” HiHa

PHP7+ 版本新增整除运算符 intdiv()

参量

dividend

除数

要划分的数字。

divisor

被除数

用数字除dividend。

返回值

的划分的整数商dividend通过divisor。

PHP 赋值运算符

在 PHP 中,基本的赋值运算符是 “=”。它意味着左操作数被设置为右侧表达式的值。也就是说,”$x = 5” 的值是 5。

运算符 等同于 描述
x = y x = y 左操作数被设置为右侧表达式的值
x += y x = x + y
x -= y x = x – y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y 模(除法的余数)
a .= b a = a . b 连接两个字符串

PHP 递增/递减运算符

运算符 名称 描述
++ x 预递增 x 加 1,然后返回 x
x ++ 后递增 返回 x,然后 x 加 1
— x 预递减 x 减 1,然后返回 x
x — 后递减 返回 x,然后 x 减 1

PHP 比较运算符

比较操作符可以让您比较两个值:

运算符 名称 描述 实例
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  

PHP 逻辑运算符

运算符 名称 描述 实例
x and y 如果 x 和 y 都为 true,则返回 true x=6 y=3 (x < 10 and y > 1) 返回 true
x or y 如果 x 和 y 至少有一个为 true,则返回 true x=6 y=3 (x==6 or y==5) 返回 true
x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true x=6 y=3 (x==6 xor y==3) 返回 false
x && y 如果 x 和 y 都为 true,则返回 true x=6 y=3 (x < 10 && y > 1) 返回 true
x || y 如果 x 和 y 至少有一个为 true,则返回 true x=6 y=3 (x==5 || y==5) 返回 false
! x 如果 x 不为 true,则返回 true x=6 y=3 !(x==y) 返回 true

PHP 数组运算符

运算符 名称 描述
x + y 集合 x 和 y 的集合
x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true
x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y 不相等 如果 x 不等于 y,则返回 true
x <> y 不相等 如果 x 不等于 y,则返回 true
x !== y 不恒等 如果 x 不等于 y,则返回 true

三元运算符

另一个条件运算符是”?:”(或三元)运算符 。

语法格式

(expr1) ? (expr2) : (expr3)

对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

NULL合并操作符

$a ?? $b ?? $c

从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。

太空船运算符(组合比较符)

$a <=> $b

当$a小于、等于、大于$b时 分别返回一个小于、等于、大于0的 integer 值。 PHP7开始提供.