您的位置:

关于php运算符正确的是,php中运算符%的作用是

本文目录一览:

关于PHP运算符+和.的问题

其他语言中有的+就是连接的意思,但是在php中+就是加法运算的意思。连接两个字符的符号是“. ”。举个例子

假如$str=20;

$arr[$i]=50;

$str.=$arr[$i];翻译一下就应该是$str=20;连接上$arr[$i]=50;并且把新的字符串的值赋给变量$str。如果这个不明白的话,就换个说法,就是$str.=$arr[$i];翻译出来就是$str=$str连接$arr[$i];等号后面的内容“$str连接$arr[$i]”的值付给了$str;也就是$str=20连接50;也就是$str=2050;

如果是$str+=$arr[$i]的话,和上面的一样,只是把连接换成了加法。

不知道你id前面的?是写错了还是什么意思。那个++++的应该没什么意思,就是一串字符串,不用当成自增也就是“++”处理。因为那一串++和i都是在‘’当中的。如果是$str++的话,就应该是20+1了。

关于PHP的运算符!!

"+","-"除了可作为算术运算符外还可作"正","负";

它们做正负解释时优先级高于算术运算符.

所以不能那样写.

第十二讲 PHP 逻辑运算符

逻辑运算符用来组合逻辑运算的结果,是程序设计中一组非常重要的运算符。

PHP中的逻辑运算符如下表所示:

左右两个条件同时为 TRUE 时,则结果为 TRUE;两个条件中有任意一个条件为 FALSE 时,则结果为 FALSE。当左边的条件为 FALSE 时,将直接跳过右边的条件直接返回 FALSE。

运行结果:

如果两个条件有一个为 TRUE,则结果为 TRUE;如果两个条件都是为 FALSE,则结果为 FALSE。当左边条件为 TRUE,将跳过右边条件的判断,直接返回 TRUE。

调整上面的示例:

运行结果:

将一个布尔值进行取反操作。例如:!true = false、!false = true、!10 = false。

调整上面的示例:

关于php 位运算符的问题

这个涉及到系统底层,WEB开发中几乎没用到,知道下有这个东西就好了。底层的东西解释总是简单不了的。

变量在内存中的存放都是二进制数字。整数在32位系统上是占用4字节,一个字节是8位,也就是32位,位运算就是位级的运算操作了。

$a $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。

假定变量 $a 的值是 3,$b 的值是 2。

那么 $a 在内存中的存放的格式是:

00000000 00000000 00000000 00000011

每执行一次左移,都将所有的位向左移动,右边补零,左边超过的舍弃。

所以 $a 左移 2 得到的是:

00000000 00000000 00000000 00011000

也就是 12。相当于 3 × 2 × 2 = 12。

$a $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

假定变量 $a 的值是 24,$b 的值是 2。

那么 $a 在内存中的存放的格式是:

00000000 00000000 00000000 00011000

每执行一次右移,都将所有的位向由移动,右边超过的舍弃,左边空出的位补零。

所以 $a 右移 2 得到的是:

00000000 00000000 00000000 00000110

也就是 6。相当于 24 ÷ 2 ÷ 2 = 6。

位移运算是系统底层运算,运算的速度比乘除还要快很多,优化代码优化到极致的时候,可以将数换算成二的公倍数,然后进行位移计算。但在WEB开发中几乎没有任何必要,而且超过系统底层了,程序在的可移植性就会降低。

其他的位运算符也是差不多的。比如:

$a $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。

假定变量 $a 的值是 5,$b 的值是 6。

$a:

00000000 00000000 00000000 00000101

$b:

00000000 00000000 00000000 00000110

$a $b :

00000000 00000000 00000000 00000101

00000000 00000000 00000000 00000110

───────────────────────────

00000000 00000000 00000000 00000100

竖的看,上下都是 1 的得到 1 ,否则就是 0。

所以 $a $b = 4。

~ $a Not(按位非) 将 $a 中为 0 的位设为 1,反之亦然。

~ $a:

00000000 00000000 00000000 00000101

───────────────────────────

11111111 11111111 11111111 11111010

如果 $a 是有符号整数,第一位是符号位,1表示负数,那么 ~ $a = -2147483642。

如果 $a 是无符号整数,第一位还是数据位,那么 ~ $a = 4294967290。

以下的就不详细介绍了:

$a | $b Or(按位或) 将把 $a 或者 $b 中为 1 的位设为 1。

$a ^ $b Xor(按位异或) 将把 $a 和 $b 中不同的位设为 1。

平常说的几位的系统,就是系统处理整数的时候,是多少个位同时计算的,上面的例子都是基于32位系统。因为移动时超过的位将被舍弃,如果是64位或12位的,位移的结果就可能不一样了,要将计算时位的数量调整下。