逻辑与:
规则(真值表):
true && true ==> true;
true && false ==>false
false && true ==>false;
false && false ==>false;
只有两个都是true,结果才是true
只要有一个是false,结果就是false
逻辑或:
规则(真值表):
true || true ==> true;
true || false ==>true
false || true ==>true;
false || false ==>false;
只有两个都是false,结果才是false
只要有一个是true,结果就是true
逻辑非:
!true ==> false
!false ===>true
短路现象之逻辑与短路:
在实际应用中,参与逻辑运算的数据,往往都不是直接的布尔值,而是有关计算之后的布尔结果值。
大致如下:
if( IsFemale( $uName ) && isAge($uName) > 18){
......echo “女士优先”
}
此时,如果IsFemale()函数判断的结果是false,那么后续的函数isAge()就不再调用,自然也不再进行大于18的判断,这是就称为“短路现象”
短路现象之逻辑或短路:
if( IsFemale( $uName ) || isAge($uName) < 18){
......echo “有限照顾女士或未成年人”
}
此时,如果IsFemale()函数判断的结果是true,那么后续的函数isAge()就不再调用,自然也不再进行小于18的判断,这就是“或运算符短路现象”
字符串运算符:
只有一个: .
衍生一个: .=
会将运算符两边的数据转换为字符串。
对比js:+(具有双重含义,此时就需要一定的“判断”)
赋值运算符:
只有一个: =
衍生多个: += -= *= /= %= .=
基本形式为:
$变量 符合赋值运算符 数据2;
这些衍生的赋值运算符,是这种运算的一个简化形式:
$v2 = $v2 [运算符] 数据2;//某个变量跟另一个数据进行某种运算之后的结果再存入该变量
对比(它不是这种形式的简化):
$v2 = 数据2 [运算符] $v2; //这种形式不应该简化
条件(三目)运算符:
一般的运算符需要2个数据参与
有几个运算符只需要一个数据参与: ++, -- !
则:
条件运算符就需要至少3个数据参与!
形式为:
数据1 ? 数据2 :数据3;
通常,数据1最终应该是一个布尔值(如果不是,则会当作布尔值来使用)。
含义:
如果数据1为true,则运算结果为数据2, 否则运算结果为数据3
典型举例:
$score = 66;
$result 1= $score >= 60 ? “及格” : “不及格”; //结果是“及格”
$result 2= $score ? “及格” : “不及格”; //结果是“及格”,但含义完全不同,因为即使分数是33,也是及格。只有分数为0才是不及格。
三目运算符可以转换为if else语句来实现:
if( $score >= 60){
$result1 = “及格";
}
else{
$result1 = “不及格";
}
流程控制
分支结构
if语句:
if(条件判断){
//语句块
}
if else 语句:
if(条件判断){
//分支1
}else{
//分支2;
}
if else if语句
if -else if -else语句:
switch语句:
switch(一个数据$v1){ //判断此v1变量跟下面的某个是否相等,如果相等,则进入对应进程。
case 状态值1:
//进程1
[break;]
case 状态值2:
//进程2
[break;]
case 状态值3:
//进程3;
[break;]
。。。。。。
[default :
//默认进程。
]
}
应用冲,break通常都会用上;只有一些特殊数据或需求的时候,可能不用。
如果没有使用break,则一旦某个状态满足,就会继续执行后续状态中的进程代码,而不再判断。
循环结构:
while循环:
$v1 = 10; //初始化循环变量
while( $v1〉4 ){ //判断循环变量的条件
//语句快 break contiune
echo “abc”;
$v1--;
}
循环3要素:
1,循环变量初始化
2,循环变量判断
3,循环变量改变
此3 要素通常适用于所有循环过程。
do while循环
do{
//循环体
}while(条件判断);
含义:
先执行一次循环体,然后判断条件,如果条件满足,则继续回去执行循环体,然后再判断,依次类推。
for循环:
循环的中断
这里指的中断,适用于所有循环。
循环的中断有两种情况:
break中断: 终止整个循环语句,而跳出循环进入到循环结构之后的语句
continue中断:终止当前正在执行的循环体中的语句,而进入到循环的下一次过程里(改变,判断)
中断语句的语法如下:
break $n; //$n是一个大于等于1的整数,表示要中断的循环层数;
Contiune $n;
所谓循环层数,是指一个循环中又嵌套了循环的情况。
以当前循环为“起点”,表示第一层,往上(外)数,就是2,3,4层。。。。
部分流程控制的替换语法:
if ( ... ) :
//语句块
endif;
if ( ... ) :
//语句块
else:
//语句块
endif;
if ( ... ):
//语句块
elseif( ... ) :
//语句块
elseif( ... ):
//语句块
else:
//语句块
endif;
switch( ... ) :
case ...
case ...
endSwitch;
while(...):
//语句块
endwhile;
for(...; ...; ...):
//语句块
endfor;
foreach( ):
//语句块
endForeach;