PHP中的运算符
算术运算符
+ | |
- | |
* | |
/ | 除法运算符总是返回浮点数。只有在下列情况例外:两个操作数都是整数(或字符串转换成的整数)并且正好能整除,这时它返回一个整数。 |
% | 取模运算符的操作数在运算之前都会转换成整数(除去小数部分)。取模运算符 % 的结果和被除数的符号(正负号)相同。即 a b 的结果和 $a 的符号相同。 |
echo (5 % 3)."\n"; // prints 2echo (5 % -3)."\n"; // prints 2echo (-5 % 3)."\n"; // prints -2echo (-5 % -3)."\n"; // prints -2
基本的赋值运算符是“=”
在基本赋值运算符之外,还有适合于所有二元算术,数组集合和字符串运算符的“组合运算符”
$a = 3;$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;$b = "Hello ";$b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";
$a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1 |
$a | $b | Or(按位或) | 将把 $a 和 $b 中任何一个为 1 的位设为 1 |
$a ^ $b | Xor(按位异或) | 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1 |
~ $a | Not(按位取反) | 将 $a 中为 0 的位设为 1,反之亦然 |
$a | Shift left(左移) | 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”) |
$a >> $b | Shift right(右移) | 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”) |
左移时右侧以零填充,符号位被移走意味着正负号不被保留。右移时左侧以符号位填充,意味着正负号被保留。
比较运算符$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 | 小与 | TRUE,如果 $a 严格小于 $b |
$a > $b | 大于 | TRUE,如果 $a 严格大于 $b |
$a | 小于等于 | TRUE,如果 $a 小于或者等于 $b |
$a >= $b | 大于等于 | TRUE,如果 $a 大于或者等于 $b |
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。
<?phpvar_dump (0 == "a"); // 0 == 0 -> truevar_dump("1" == "01"); // 1 == 1 -> truevar_dump("10" == "1e1"); // 10 == 10 -> truevar_dump(100 == "1e2"); // 100 == 100 -> trueswitch ("a") {case 0: echo "0"; break;case "a": // never reached because "a" is already matched with 0 echo "a"; break;}?>
三元运算符
另一个条件运算符是“?:”(或三元)运算符
错误控制运算符PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
@ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和 include 调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等
执行运算符PHP 支持一个执行运算符:反引号(` `)。注意这不是单引号!PHP 将尝试将反引号中的内容作为shell命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同。
反引号不能在双引号字符串中使用
递增/递减运算符 逻辑运算符$a and $b | And(逻辑与) | TRUE,如果 $a 和 $b 都为 TRUE |
$a or $b | Or(逻辑或) | TRUE,如果 $a 或 $b 任一为 TRUE |
$a xor $b | Xor(逻辑异或) | TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是 |
! $a Not(逻辑非) | TRUE,如果 $a 不为 TRUE | |
$a && $b | And(逻辑与) | TRUE,如果 $a 和 $b 都为 TRUE |
$a || $b | Or(逻辑或) | TRUE,如果 $a 或 $b 任一为 TRUE |
“与”和“或”有两种不同形式运算符的原因是它们运算的优先级不同
有两个字符串(string)运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”)
数组运算符$a + $b | 联合 | $a 和 $b 的联合 |
$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 |
instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例
版权声明:本文为博主原创文章,未经博主允许不得转载。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Alipay PHP...

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...
