Opérateurs arithmétiques
Opérateurs d'incrémentation et de décrémentation
Opérateur d'affectation
Opérateur de chaîne
Opérateur de comparaison
Opérateurs au niveau du bit
Opérateurs logiques
Opérateurs ternaires
Opérateurs de contrôle d'erreur
Les opérateurs PHP sont une compétence qui doit être maîtrisée dans les bases de PHP, c'est un pont pour le traitement des données PHP. utilisé dans diverses opérations sur les données, telles que l'addition, la soustraction, la multiplication, la division et/ou d'autres opérations.
Opérateur arithmétique : C'est le symbole utilisé pour traiter les quatre opérations arithmétiques. C'est le symbole le plus simple et le plus couramment utilisé, notamment pour le traitement de. nombres, les symboles d’opérations arithmétiques sont presque toujours utilisés.
Classification des opérateurs arithmétiques :
-$a Négation, valeur négative de $a
$a = -1; echo -$a; -----结果----- 1
$a $b Addition de la somme de $a et $b
$a = 12; $b = 12; $res = $a + $b; echo $res; -----结果----- 24
$a - $b Soustraire la différence entre $a et $b
$a = 12; $b = 6; $res = $a - $b; echo $res; -----结果----- 6
$a * $b Multiplier le produit de $a et $b
$a = 2; $b = 3; $res = $a * $b; echo $res; -----结果----- 6
$a / $b est le quotient de la division $a et $b
$a = 12; $b = 6; $res = $a / $b; echo $res; -----结果----- 2
$a % $b est le reste modulo $a et $b
$a = 3; $b = 2; $res = $a % $b; echo $res; -----结果----- 1
$a : ajoutez un à la valeur de $a, puis renvoyez $a. Il s'agit d'une pré-incrémentation.
$a renvoie $a puis ajoute un à la valeur de $a, qui est post-incrémentée.
–$a Décrémentez la valeur de $a de un, puis retournez $a , décrémentée auparavant.
$a– Renvoie $a, puis décrémente la valeur de $a de un, puis décrémente.
$a
$a = 1; $b = ++$a;//先++,在进行赋值运算,等价于$a = $a + 1; $b = $a; echo $b . '<br>' . $a; -----结果----- $b = 2 $a = 2
$a
$a = 1; $b = $a++;//先赋值,在进行++运算,等价于$b = $a; $a = $a + 1; echo $b . '<br>' . $a; -----结果----- $b = 1 $a = 2
La situation de soustraction est la même que ci-dessus.
L'opérateur d'affectation de base est "=", ce qui signifie en fait attribuer la valeur de l'expression de droite à l'opération de gauche nombre.
$a = 1; $b = 'string';
Il existe également des cas où =, -=, /=, etc.
$a = 1; $a += 2;//等价于$a = $a + 2; echo $a; -----结果----- 3
a deux chaînes. L'opérateur est ("."), qui renvoie une chaîne concaténée avec ses arguments gauche et droit.
$a = 1; $b = 2; echo '$a = ' . $a . ' $b = ' . $b; -----结果----- $a = 1 $b = 2;
L'opérateur de comparaison est utilisé pour comparer deux variables, si la valeur est la même, si le type de données est le même et la comparaison le résultat est supérieur. La plupart sont de type booléen.
Les opérateurs de comparaison courants sont :
$a == $b est égal à vrai Lorsque $a == $b, ici généralement uniquement les valeurs numériques. sont jugés égaux, ne déterminera pas si les types sont égaux.
$a === $b Congruent vrai si $a est égal à $b et que leurs types sont les mêmes.
$a != $b n'est pas égal à vrai, renvoie vrai lorsque les valeurs des deux variables ne sont pas égales ;
$a < ;> $b n'est pas égal à true. Il existe une autre façon d'écrire la situation ci-dessus, si $a n'est pas égal à $b après la conversion de type.
$a !== $b n'est pas égal à vrai, si $a n'est pas égal à $b, ou si leurs types sont différents, notez que lorsque l'une des deux variables est n'est pas égal, true sera renvoyé ;(Nombre, type)
$a < $b est inférieur à TRUE si $a est strictement inférieur à $b.
$a > $b est supérieur à TRUE si $a est strictement supérieur à $b .
$a <= $b est inférieur ou égal à TRUE si $a est inférieur ou égal à $b .
$a >= $b est supérieur ou égal à TRUE si $a est supérieur ou égal à $b .
$a = 2; $b = '2'; var_dump($a == $b); //判断两个数值是否相等,比较的时候会进行类型转换。 -----结果----- bool(true) var_dump($a === $b);//判断数值和类型是否相等,当时全等比较的时候,不会进行类型转换。 -----结果----- bool(false)
Les opérateurs au niveau du bit permettent de spécifier des bits dans un nombre entier à spécifier en binaire méthode d'évaluation et de fonctionnement.
Avant cela, parlons d'abord du binaire
Dans l'ordinateur, tous les nombres sont stockés en mémoire comme stockés dans forme binaire. Pour parler franchement, les opérations sur les bits consistent à opérer directement sur les bits binaires des entiers en mémoire.
Qu'est-ce que le binaire : les données binaires sont un nombre représenté par deux chiffres, 0 et 1. Sa base est 2, la règle du report est « quand deux sont entrés, un est ajouté » et la règle d'emprunt est « emprunter un pour être égal à deux ».
Convertir le décimal en binaire : "Divisez par 2 et prenez le reste, disposez dans l'ordre inverse" (divisez par deux et prenez le reste)
商 余数 3 / 2 = 1.....1 1 / 2 = 0.....1 二进制(逆序排列): 11 12 / 2 = 6....0 6 / 2 = 3.....0 3 / 2 = 1.....1 1 / 2 = 0.....1 二进制: 1100 15 / 2 = 7....1 7 / 2 = 3.....1 3 / 2 = 1.....1 1 / 2 = 0.....1 二进制: 1111
Convertir binaire en décimal : "Développer la somme en poids"
1111 = 1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 15 10 = 0 * 20 + 1 * 21 = 2
Il existe trois formes d'expression des bits de symboles dans les ordinateurs :
Code original
Code inverse
Code complémentaire
Lors de l'exécution d'opérations sur les bits , ils sont convertis en Des opérations complémentaires sont effectuées.
La représentation binaire d'un nombre positif est qu'il y a un 0 devant le binaire pour représenter un nombre positif
Le code original du nombre positif, le code inverse , et le code complément sont les mêmes (trois codes en un)
La représentation binaire d'un nombre négatif est qu'il y a un 1 devant le binaire pour représenter un nombre négatif .
Le code original d'un nombre négatif est un nombre binaire calculé à l'aide d'une formule. Le code complément signifie qu'à l'exception du bit de signe, tout le reste est inversé (1 devient 0, 0 devient 1). code 1.
Par exemple -1
原码 10000000 00000000 00000000 00000001 反码 11111111 11111111 11111111 11111110 取反 补码 11111111 11111111 11111111 11111111 加1
Quant à la raison pour laquelle il est nécessaire d'écrire 32 bits, ma compréhension est la suivante : l'entier occupe 4 octets, chaque octet fait 8 bits, un total de 32 bits, dont un bit de signe.
Ceci est une brève introduction au système binaire
Classification des opérateurs au niveau du bit en PHP
$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 << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。
示例:
与(1 1 = 1; 1 0 = 0;0 0 = 0)
$a = 1 & 2;//进行“与”运算 两个都为1的时候为1,其他为0 // 1的补码 // 00000000 00000000 00000000 00000001 // 2的补码 // 00000000 00000000 00000000 00000010 // 结果 // 00000000 00000000 00000000 00000000 == 0 echo $a; -----结果----- 0
或(1 1 = 1;1 0 = 1;0 0 = 0)
$a = 1 | 2;//进行“或”运算 至少有一个为1的时候为1,其他为0 // 1的补码 // 00000000 00000000 00000000 00000001 // 2的补码 // 00000000 00000000 00000000 00000010 // 结果 // 00000000 00000000 00000000 00000011 == 3 echo $a; -----结果----- 3
异或(1 0 = 1; 1 1 = 0; 0 0 = 1)
$a = 3 ^ 2;//进行“异或”运算 一个为1,一个为0的时候为1,其他为0 // 1的补码 // 00000000 00000000 00000000 00000011 // 2的补码 // 00000000 00000000 00000000 00000010 // 结果 // 00000000 00000000 00000000 00000001 == 1 echo $a; -----结果----- 1
取反(1 = 0; 0 = 1)注意符号位的变化。
$a = ~2;//进行“取反”运算 1变0,0变1 // 2的二进制 // 00000000 00000000 00000000 00000010 // 11111111 11111111 11111111 11111101 前面一个1,是负数 // 反码 // 11111111 11111111 11111111 11111100 // 原码 // 10000000 00000000 00000000 00000011 == -3 echo $a; -----结果----- -3
左移(将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”))
左移时右侧以零填充,符号位被移走意味着正负号不被保留。
$a = 1; // 二进制: // 00000000 00000000 00000000 00000001 // 左移时右侧以零填充,符号位被移走意味着正负号不被保留。 // 00000000 00000000 00000000 00000100 == 4 echo $a << 2;//将 $a 中的位向左移动2次 -----结果----- 4
右移时左侧以符号位填充,意味着正负号被保留。
$a = 4; // 右移时左侧以符号位填充,意味着正负号被保留。 // 00000000 00000000 00000000 00000100 // 00000000 00000000 00000000 00000001 == 1 echo $a >> 2; -----结果----- 1
到这里位运算符算术基本说完了……
逻辑运算符也就是判断逻辑,它的返回结果一般是布尔类型,像与或非等;而PHP中的逻辑运算符有:
$a and $b And(逻辑与) TRUE ,如果 $a 和 $b 都为 TRUE 。
$a or $b Or(逻辑或) TRUE ,如果 $a 或 $b 任一为 TRUE 。
! $a Not(逻辑非) TRUE ,如果 $a 不为 TRUE 。
$a && $b And(逻辑与) TRUE ,如果 $a 和 $b 都为 TRUE 。
$a || $b Or(逻辑或) TRUE ,如果 $a 或 $b 任一为 TRUE 。
逻辑与(当表达式的两边都为true的时候结果为真)
两个&符号:
$a = 2; $b = 3; if($a > 1 && $b > 2){ //左边的为true,右边的为true;两边都为true,结果为true; echo '与'; } -----结果----- 与
一个&符号:
$a = 2; $b = 3; if($a > 1 & $b > 2){ //左边的为true,右边的为true;两边都为true,结果为true; echo '与'; } -----结果----- 与
区别:两个&时:如果有一个逻辑判断表达式为假,则后面的逻辑运算就不会执行,俗称短路现象。
一个&:两边的都会判断。不管是真是假。
逻辑或(当左右两个表达式其中有一个是true的时候,为真)
两个|符号:
$a = 2; $b = 4; if($a > 1 || $b < 3){ //左边的为true,右边的为false; echo '或'; } -----结果----- 或
一个|符号:
$a = 2; $b = 4; if($a > 1 | $b < 3){ //左边的为true,右边的为false; echo '或'; } -----结果----- 或
区别:两个|时:如果有一个逻辑判断表达式为真,则后面的逻辑运算就不会执行,短路现象。
一个|:两边的都会判断。不管是真是假。
非(!true = false; !false = true)
$a = true; var_dump(!$a); -----结果----- bool(false)
语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果为真执行第一个,否则执行第二个。”
$a = 456; $b = $a > 10 ? true : false; //问号前面的结果为真,执行第一个true; var_dump($b); -----结果----- bool(true);
三元运算符可以说是if…else的简化版,在以后的开发中也会经常使用到的。
介绍: PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉
当你不想用户看到错误信息可以使用。
说了这么多总算把运算符的大部分都说完了,其中还有数组运算符,类型运算符等,在数组和对象的时候会说。
以上就是PHP基础教程三之运算符的内容,更多相关内容请关注PHP中文网(www.php.cn)!