1 Définition Un opérateur
est quelque chose qui, étant donné une ou plusieurs valeurs (dans le jargon de la programmation, une expression), produit une autre valeur (ainsi la structure entière devient une expression).
Les opérateurs peuvent être regroupés en fonction du nombre de valeurs qu'ils peuvent accepter :
① Les opérateurs unaires ne peuvent accepter qu'une seule valeur, comme ! (opérateur de négation logique) ou (opérateur d'incrémentation).
② Les opérateurs binaires acceptent deux valeurs, telles que les opérateurs arithmétiques familiers (plus) et - (soustraction), qui constituent la majorité des opérateurs PHP.
③ Opérateur ternaire ? :, accepte trois valeurs ; généralement simplement appelé « opérateur ternaire » (bien qu'il puisse être plus approprié de l'appeler un opérateur conditionnel).
2 Priorité des opérateurs
① La priorité des opérateurs spécifie à quel point "étroitement" deux expressions sont liées. Par exemple, l'expression 1 5 * 3 est évaluée à 16 au lieu de 18 car le signe de multiplication ("*") a une priorité plus élevée que le signe plus (" ").
② Si nécessaire, vous pouvez utiliser des parenthèses pour forcer le changement de priorité. Par exemple : (1 5) * 3 a la valeur 18.
③ Si les opérateurs ont la même priorité, la direction de la combinaison des opérateurs détermine comment opérer. Par exemple, "-" est une articulation gauche, alors 1 - 2 - 3 est équivalent à (1 - 2) - 3 et le résultat est -4
④ "=" est une articulation droite, donc $. a = $b = $c équivaut à $a = ($b = $c).
⑤ Les opérateurs avec la même priorité qui ne sont pas combinés ne peuvent pas être utilisés ensemble. Par exemple, 1 < 2 > Mais d'un autre côté, l'expression 1 <= 1 == 1 est légale car == a une priorité inférieure à <=.
⑥ L'utilisation de parenthèses, même lorsque cela n'est pas nécessaire, indique clairement l'ordre des opérations grâce à l'appariement des parenthèses, plutôt que de s'appuyer sur la préséance et l'associativité des opérateurs, qui peuvent généralement augmenter la lisibilité du code.
3 Opérateur arithmétique
① Négation Par exemple : -$a représente la valeur négative de $a.
② L'addition est comme : $a $b
③ La soustraction est comme : $a - $b
④ La multiplication est comme : $a * $b
⑤ La division est comme : $a / $ b
⑥ Prenez le module comme : $a % $b
⑦ Prenez l'exponentiation comme : $a ** $b
Remarque :
L'opérateur de division toujours. renvoie un nombre à virgule flottante. La seule exception est si les deux opérandes sont des entiers (ou des entiers convertis à partir de chaînes) et sont exactement divisibles, auquel cas il renvoie un entier.
b. Les opérandes de l'opérateur modulo seront convertis en entiers (sauf la partie décimale) avant opération.
c. Le résultat de l'opérateur modulo % est le même que le signe (signe) du dividende. Autrement dit, le résultat de $a % $b a le même signe que $a
4 Opérateur d'affectation
① L'opérateur d'affectation de base est "=". Au début, vous pourriez penser que c'est « égal à », mais ce n'est pas le cas. Cela revient en fait à attribuer la valeur de l’expression de droite à l’opérande de gauche.
La valeur de l'expression de l'opération d'affectation est la valeur attribuée. Autrement dit, la valeur de « $a = 3 » est 3. De cette façon, vous pouvez faire quelques astuces :
<?php $a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。 ?>
② Arithmétique binaire : "l'opérateur de combinaison" de la collection de tableaux et des opérateurs de chaîne, afin que sa valeur puisse être utilisée dans une expression et que l'expression attribue le résultat de la formule
<?php $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!"; ?>
③ Affectation de référence : PHP prend en charge l'affectation de référence, en utilisant la syntaxe "$var = &$othervar;". L'affectation par référence signifie que les deux variables pointent vers les mêmes données, rien n'est copié.
<?php $a = 3; $b = &$a; // $b 是 $a 的引用 print "$a\n"; // 输出 3 print "$b\n"; // 输出 3 $a = 4; // 修改 $a print "$a\n"; // 输出 4 print "$b\n"; // 也输出 4,因为 $b 是 $a 的引用,因此也被改变 ?>
④ Bon sens
L'opération d'affectation copie la valeur de la variable d'origine dans la nouvelle variable (affectation par valeur), donc la modification de l'une n'affecte pas l'autre. Ceci convient également pour copier certaines valeurs telles que de grands tableaux dans des boucles denses.
5 位运算符
① And(按位与) $a & $b
② Or(按位或) $a | $b
③ Xor(按位异或) $a ^ $b
④ Not(按位取反) ~ $a
⑤ Shift left(左移) $a << $b
⑥ $a >> $b
6 比较运算符
① 等于 $a == $b
② 全等 $a === $b
③ 不等 $a != $b
④ 不等 $a <> $b
⑤ 不全等 $a !== $b
⑥ 小于 $a < $b
⑦ 大于 $a > $b
⑧ 小于等于 $a <= $b
⑨ 大于等于 $a >= $b
⑩ 结合比较运算符 $a <=> $b
7 错误控制运算符
PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。
如果用 set_error_handler() 设定了自定义的错误处理函数,仍然会被调用,但是此错误处理函数可以(并且也应该)调用 error_reporting(),而该函数在出错语句前有 @ 时将返回 0。
如果激活了 track_errors 特性,表达式所产生的任何错误信息都被存放在变量 $php_errormsg 中。此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查。
8 执行运算符
PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同。
<?php $output = `ls -al`; echo "<pre class="brush:php;toolbar:false">$output"; ?>
注:反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。
9 递增/递减运算符: PHP 支持 C 风格的前/后递增与递减运算符。
① 前加 ++$a
② 后加 $a++
③ 前减 --$a
④ 后减 $a--
10 逻辑运算符
① And(逻辑与) $a and $b
② Or(逻辑或) $a or $b
③ Xor(逻辑异或) $a xor $b
④ Not(逻辑非) ! $a
⑤ And(逻辑与) $a && $b
⑥ Or(逻辑或) $a || $b
11 字符串运算符
有两个字符串(string)运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。更多信息见赋值运算符。
<?php $a = "Hello "; $b = $a . "World!"; // now $b contains "Hello World!" $a = "Hello "; $a .= "World!"; // now $a contains "Hello World!" ?>
12 数组运算符
① 联合 $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。 $a !== $b
注:+ 运算符把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
13 类型运算符
instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例:
<?php class MyClass { } class NotMyClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof NotMyClass); ?>
以上就是PHP基础 之 运算符的内容,更多相关内容请关注PHP中文网(www.php.cn)!