【PHP系列教程】(7)PHP中的运算符
一、运算符的优先级 运算符优先级指定了两个表达式绑定得有多紧密。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(*)的优先级比加号(+)高。必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18。 下表从低到高列出了运算符的优
一、运算符的优先级
运算符优先级指定了两个表达式绑定得有多“紧密”。例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高。必要时可以用括号来强制改变优先级。例如:(1 + 5) * 3 的值为 18。
下表从低到高列出了运算符的优先级。
结合方向 | 运算符 |
---|---|
左 | , |
左 | or |
左 | xor |
左 | and |
右 | |
右 | = += -= *= /= .= %= &= |= ^= ~= >= |
左 | ? : |
左 | || |
左 | && |
左 | | |
左 | ^ |
左 | & |
无 | == != === !== |
无 | >= |
左 | > |
左 | + - . |
左 | * / % |
右 | ! ~ ++ -- (int) (float) (string) (array) (object) @ |
右 | [ |
无 | new |
注: 尽管 ! 比 = 的优先级高,PHP 仍旧允许类似如下的表达式
二、算术运算符
例子 | 名称 | 结果 |
---|---|---|
$a + $b | 加法 | $a 和 $b 的和。 |
$a - $b | 减法 | $a 和 $b 的差。 |
$a * $b | 乘法 | $a 和 $b 的积。 |
$a / $b | 除法 | $a 除以 $b 的商。 |
$a % $b | 取模 | $a 除以 $b 的余数。 |
除号(“/”)总是返回浮点数,即使两个运算数是整数(或由字符串转换成的整数)也是这样。
三、赋值运算符
基本的赋值运算符是“=”。你一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左运算数。
赋值运算表达式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。这样就可以使你做一些小技巧:
在基本赋值运算符之外,还有适合于所有二元算术和字符串运算符的“组和运算符”,这可以让你在一个表达式中使用它的值并把表达式的结果赋给它,例如:
注意:赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。这也适合于你在在紧密循环中拷贝一些值例如大数值。PHP 4 支持引用赋值,用 $var = &$othervar; 语法,但在 PHP 3 中不可能这样做。“引用赋值”意味着两个变量都指向同一个数据,没有任何数据的拷贝。
四、位运算符
运算符允许对整型数中指定的位进行置位。如果左右参数都是字符串,则位运算符将操作这个字符串中的字符。
位运算的表格如下:
例子 | 名称 | 结果 |
---|---|---|
$a & $b | And(按位与) | 将在 $a 和 $b 中都为 1 的位设为 1。 |
$a | $b | Or(按位或) | 将在 $a 或者 $b 中为 1 的位设为 1。 |
$a ^ $b | Xor(按位异或) | 将在 $a 和 $b 中不同的位设为 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,并且它们的类型也相同。(PHP 4 only) |
$a != $b | 不等 | TRUE,如果 $a 不等于 $b。 |
$a $b | 不等 | TRUE,如果 $a 不等于 $b。 |
$a !== $b | 非全等 | TRUE,如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 only) |
$a | 小与 | TRUE,如果 $a 严格小于 $b。 |
$a > $b | 大于 | TRUE,如果 $a 严格 $b。 |
$a | 小于等于 | TRUE,如果 $a 小于或者等于 $b。 |
$a >= $b | 大于等于 | TRUE,如果 $a 大于或者等于 $b。 |
另外一个条件运算符是“?:”(或三元)运算符,它和 C 以及很多其它语言的操作一样。
对于表达式 (expr1) ? (expr2) : (expr3),如果 expr1 的值为 TRUE,则此表达式的值为 expr2,如果 expr1 的值为 FALSE,则此表达式的值为 expr3。
六、错误控制运算符
PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
如果激活了 track_errors 特性,表达式所产生的任何错误信息都被存放在变量 $php_errormsg 中。此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查。
注: @ 运算符只对表达式有效。对新手来说一个简单的规则就是:如果你能从某处得到值,你就能在它前面加上 @ 运算符。例如,你可以把它放在变量,函数和 include() 调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。
警告:目前的“@”错误控制运算符前缀甚至使导致脚本终止的严重错误的错误报告也失效。这意味着如果你在某个不存在或类型错误的函数调用前用了“@”来抑制错误信息,那脚本会没有任何迹象显示原因而死在那里。
七、执行运算符
PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(例如,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同。
注: 反引号运算符在激活了 安全模式 或者关闭了 shell_exec() 时是无效的。
八、加一/减一运算符
PHP 支持 C 风格的前/后加一与减一运算符。
例子 | 名称 | 效果 |
---|---|---|
++$a | 前加 | $a 的值加一,然后返回 $a。 |
$a++ | 后加 | 返回 $a,然后将 $a 的值加一。 |
--$a | 前减 | $a 的值减一, 然后返回 $a。 |
$a-- | 后减 | 返回 $a,然后将 $a 的值减一。 |
一个简单的示例脚本:
在处理字符变量的算数运算时,PHP 沿袭了 Perl 的习惯,而非 C 的。例如,在 Perl 中 'Z'+1 将得到 'AA',而在 C 中,'Z'+1 将得到 '[' { ord('Z') == 90, ord('[') == 91 )。
代码1:涉及字符变量的算数运算
九、逻辑运算符
“与”和“或”有两种不同形式运算符的原因是它们操作的优先级不同。
例子 | 名称 | 结果 |
---|---|---|
$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。 |
九、字符串运算符
有两个字符串运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数后。
九、数组运算符
PHP 仅有的一个数组运算符是 + 运算符。它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。
执行后,此脚本会显示:
array(3) {
["a"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["c"]=>
string(6) "cherry"
}

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Depuis la mise en vente de la série Huawei Mate60 l’année dernière, j’utilise personnellement le Mate60Pro comme téléphone principal. En près d'un an, le Huawei Mate60Pro a subi plusieurs mises à niveau OTA et l'expérience globale a été considérablement améliorée, donnant aux gens le sentiment d'être constamment nouveaux. Par exemple, récemment, la série Huawei Mate60 a de nouveau reçu une mise à niveau majeure de ses capacités d'imagerie. Le premier est la nouvelle fonction d'élimination de l'IA, qui peut éliminer intelligemment les passants et les débris et remplir automatiquement les zones vides. Deuxièmement, la précision des couleurs et la clarté du téléobjectif de la caméra principale ont été considérablement améliorées. Étant donné que c'est la rentrée scolaire, la série Huawei Mate60 a également lancé une promotion d'automne : vous pouvez profiter d'une réduction allant jusqu'à 800 yuans lors de l'achat du téléphone, et le prix de départ est aussi bas que 4 999 yuans. Produits couramment utilisés et souvent nouveaux avec une grande valeur
