目录
赋值、算数、比较运算符
(1)赋值运算符:“=”表示将右边的结果保存到内存的某个位置,然后将位置的内存地址赋值给左侧的变量(常量)。
(2)算术运算符:+、-、*、/、%
(3)比较运算符:>、>=、<、<=
==:左边与右边大小相同
!=:左边与右边大小不同
===:全等于,左边与右边相同,大小以及数据类型都相同
!==:不全等于,大小或者类型不同
逻辑运算符
逻辑运算:针对不同的结果进行匹配。满足条件满足 true,不满足返回false
(1)&&:逻辑与,左边的条件与右边的条件同时成立,返回true
(2) || : 逻辑或,左边的条件或右边的条件只要有一个满足即可
(3)! : 逻辑非,对已有的条件进行取反
$a='weekend';
$b='goods';
//逻辑与
var_dump($a=='weekend' && $b=='good'); //false
//逻辑或
var_dump($a=='weekend' || $b=='good'); //true
//逻辑非
var_dump($b=='good'); //false
var_dump(!($b=='good')); //true
连接、错误抑制、三目运算符
(1)连接运算符
连接运算符:是PHP中将多个字符串拼接的一种符号
. :将两个字符串连接在一起
.= :复合运算,将左边的内容和右边的内容连接起来,然后重新赋值给左边变量
Eg: A.=b--->A=A.b
//连接运算符
$a='hello''
$b=123;
echo $a.$b; //将a变量和b变量连接起来
$a .= $b; //$a=$a . $b;
echo $a;
(2)错误抑制符
在PHP中有一些错误可以提前预知,但这些错误无法避免,但又不希望报错给用户看,可以使用错误抑制符处理。
@:在可能出错的表达式前面使用
$a=10;
$b=0;
@($a % $b);
(3)三目运算符
语法格式:表达式1?表达式2:表达式3;
运算:如果表达式1成立,那么执行表达式2,否者,执行表达式3.
//三目运算符
$a=10;
$b=$a > 10? 100 : 0;
自操作运算符
(1)前置自操作
(2)后置自操作
$a=1;
$a++;
++$a; //本身自操作,效果相同
$a=1;
$b=$a++; //先赋值,后$a自增
$c=++$a; //$a先自增后赋值
位运算符
<1>计算机码:计算机在实际存储数据的时候,采用的编码规则(二进制规则)。
计算机码:原码、反码和补码,数值本身最左边一位用来充当符号位,正数为0,负数为1.
原码:数据本身从十进制转换成二进制得到的结果。(正数左边符号位为0,负数左边符号位为1)
反码:针对负数,符号位不变,其他位取反;
补码:针对负数,反码+1
注:系统中存在两个0:+0和-0(+0:00000000 ;-0:10000000)
5原码:00000101
-5原码:10000101
取反:11111010 //反码符号位不变,其他位取反
求补:11111011 //补码:反码+1
<2>位运算:取出计算机中最小的单位(位bit)进行运算。
按位与 | & | 两个位均位1,结果位1 |
按位或 | || | 两个其中有一个位1,,结果位1 |
按位非 | ~ | 0-->1 ; 1--->0 |
按位异或 | ^ | 相同为0,相异为1 |
按位左移 | << | 左移一位,右边补0 |
按位右移 | >> | 右移一位,左边补符号位对应内容(正数补0,负数补1) |
注:1、系统进行任何位运算都使用补码。
2.运算结束之后都必须转换成原码才是最终要显示的数据。
按位与
var_dump($a & $b);
/*
//取出系统存储的结果进行与操作
5 00000101
-5 11111011
& 00000001 //最终结果(补码形式)
*/
运算符优先级
流程控制替代语法
流程控制替代语法:分支和循环结构的替代语法
PHP本身是嵌入到HTML中的脚本语言,需要在HTML中书写一些关于判断或者循环的结构语法,必须符合PHP标签规范,需要HTML与PHP进行混搭,如果使用原始的PHP代码,那么会非常不美观。
模式:左大括号{使用冒号替代; 右大括号}使用end+对应的起始标记替代(Eg: for、if 、switch)
打印一个九九乘法表
<table border=1> <?php for($i=1;$i<10;$i++){?> <tr> <?php for($j=1;j<=$i;$j++){?> <td> <?php echo $i . '*' . $j . ' = ' .$i *&j;?> <td> <?php }?> </tr> <?php }?> </table>
<table border=1> <?php for($i=1;$i<10;$i++):?> <tr> <?for($j=1;$j<$i;$j++):?> <td> <?echo $i . '*' . * $j . '=' . $i * $j;?> </td> <?php endfor ?> </tr> <?php endfor ?> </table>