PHP是操作数据,数据在静态的时候是放到文件或者数据库中,当程序操作数据的时候,数据因此变量或者常量的形式存在于内存。
在真实的项目环境中,只有数据操作是不足的。还该当有很多业务逻辑,便是对数据进行判断。表示在程序中便是各种表达式。
表达式:凡是有返回值的语句都称之为表达式
$a = 10;
$a > 10;
Php中运算符有:算术运算符,逻辑运算符,比较运算符,赋值运算符,位运算符,三元运算符,缺点抑制符,连接运算符,自操作运算符
算术运算符:+,-,,/,%
算术运算符是用来进行大略的数学打算的。
模运算的事理:取余运算,得到两个数相除之后的余数。
缺点抑制符:@,表示抑制缺点的输出,示例在上图
赋值运算符:=,+=,-=,=,/=,%=,.=
赋值运算符是改变变量的值,是将运算符右边的结果赋值给左边。
+=,-=,=,/=,%=
$a += 1; <============> $a = $a + 1;
把稳:/=后面不能跟0
逻辑运算符
指的是当多个条件并存的时候,找出个中一些关联。将多个条件一起参与运算的时候,就须要利用逻辑运算符。
逻辑运算符:&&,||,!
$a = true;
$b = false;
&&:表示且的意思,$a && $b,须要a和b同时为真的时候结果才为真,个中如果有任意一个不为真则结果假
||:表示或的意思,$a || $b,表示a和b中只要有一个结果为真,那么全体结果则为真,a和b同时为假的时候才返回假
!:逻辑非,表示对一个布尔结果取反,!$a,表示,如果a为真,则终极结果是假,如果a为假,则全体结果为真
逻辑运算符又称之为短路运算符
如果在第一个条件已经能够判断终极结果的情形下,不会在向下去判断其他的元素。
$a = true;
$b = false;
Var_dump($a && $b);//从左往右判断全体表达式,先判断$a,是true但是不能代表全体表达式的结果,以是还须要连续判断,判断$b,为false,以是全体结果为false
Var_dump($a || $b);//先判断$a,true,这个时候由于是或运算,只要个中有一个为true,那么全体结果为true,以是当第一个条件为true的时候,已经可以得到全体表达式的结果,以是不须要判断$b,直接返回true
&&可以利用and
||可以利用or
在PHP中大部分利用逻辑运算符的时候,利用是符号,而不是单词;而在mysql中大部分的时候利用的是单词而不是符号
比较运算符
比较运算符是用来判断多个值之间的关系
比较运算符:>,>=,<,<=,==,===,!=,!==
<,<=,>,>=,==,!=,常日是用来比较大小的
===,!==,用来比较类型
把稳:
在进行比较的时候,系统会对数据进行自动转换(字符串与数值进行比较的时候,会将字符串转换成数值之后,再进行比较)
===不单哀求值大小同等,哀求值对应的数据类型完备同等。
连接运算符
将两个或者多个数据进行连接,指的是字符串的拼接
连接运算符只有一个:.
$a = ‘abc’;
$b = ‘ok’;
$c = $a . $b; //将a变量的值与b变量的值前辈行连接,然后再赋值给c变量
字符串的赋值运算
$a .= $b;
$a = $a . $b;
先运算$a . $b = ‘abc’ . ‘ok’ = ‘abcok’;
再赋值$a = ‘abcok’;
把稳:利用.号的时候,不论之前变量的类型是什么,都会终极变成字符类型。
自操作运算符
自己操作自己的运算符
自操作运算符:++,--
++:自己对自己+1
--:自己对自己-1
自操作运算符分为两类:前置自操作,后置自操作
$a = 10;
$a++; //后置自操作
++$a; //前置自操作
$a = 10;
$d = 10;
$b = ++$a; //$a = $a + 1;$b = $a;
$c = $d++; //$c = $d;$d = $d + 1;
前置++:先对变量本身进行自加1运算,然后再将全体值赋值给其他变量
后置++:先将变量本身的值赋值给其他变量,然后再对自己进行+1运算
后置自操作事理
$a = 10;
$b = $a++;
等价于
$b = $a; //1 实际上是2
$a = $a + 1; //2 实际上是1
缘故原由:++运算符的优先级比 = 高
自操作运算符,常日用到循环变量的掌握
For($i = 0;$i < 10;$i++);while($i < 100){++$i;}
有兴趣
$a = 10;
$b = &$a;
$b = $a++ + $a++’
$c = ++$a + ++$a;
三元运算符
也叫三目运算,是由于参与运算的表达式有三个。
语法:$a ? $b : $c
如果$a为真,则实行$b
如果$a为假,则实行$c
三元运算符完备可以利用if else替代,以是说三目运算是对大略的if else的一个简化
位运算符
电脑最小单位是位,bit
一个字节有8个bit
所有的数据存储在电脑里,都因此二进制存在
$a = 2; //整型,占四个字节
十进制转二进制
数据在电脑内存里的二进制表示
位运算指对详细内存的详细位进行操作。
位运算符:&,|,~,^,<<,>>
&:按位与,当两个位的值同时为1的时候,结果才为1,否则结果为0
00010001 17
&
11111110 254
=
00010000 16
|:按位或,当两个位的值只要有一个为1的时候,结果便是1,否则为0
00010001 17
|
11111110 254
=
11111111 255
~:按位取反,指的是如果当前位为0,则变成1,如果是1则变成0
00010001 17
~
11101110 238
有符号和无符号:PHP中默认的整型都是有符号类型,系统会在整数的第一位当做符号位,个中0表示整数,1表示负数
原码反码补码
系统为理解决正0和负0不一致的情形,以是设计了原码反码补码
原码:指的是将一个数值按照其符号转变成的二进制码
2 00000010
-2 10000010
正负数的原码差异在于符号位的不同
反码:指的是将符号位除外,其他的位取反得到的结果
正数的原码和反码同等
2 00000010
-2 111111101
补码:指的是在反码的根本上+1
正数的原码,反码,补码都是同等的
2 00000010
-2 111111110
把稳:
正数在内存里的存储构培养是其二进制对应的编码
负数在内存里存储构造对应的是负数的补码
正2取反的结果是-3
正数原码反码补码同等,只要从二进制转化成十进制即可
负数的保存形式是补码,如果要得到负数的结果,须要把补码转化成原码之后,再进行二进制转十进制(符号位除外)
系统保存正负数的最大值差异
^:按位异或,如果两位不一样则返回1,如果两位一样就返回0
00010001 17
^
11111110 254
=
11101111
<<:左移运算,将内存对应的位向左移动一位,右边补0,每次左移使得结果乘以2
00010001 17
<<
00100010 34
>>:右移运算,将内存赌赢的位向右移动一位,左边补0,每次右移是的结果除2;
00010001 17
>>
00001000 8
Heredoc对应双引号
$str = <<< EOT
//内容
//能够解析变量
EOT;
Nowdoc对应单引号
$str = <<< ‘EOT’
//内容
//不能解析变量
EOT;