<?php
# PHP基础:运算符与流程控制
## 1.运算符
## 2.流程控制:if判断
## 3.流程控制:for循环
//////////////////////////////////////////
// 1.运算符:
// 1.1 算数运算符
// (1)加减乘除:+ - * /
$a=1+2-1*8/4;
echo $a,'<br>';
// (2)取余%、加加++、减减--、冥**
$b=20%3;
echo $b,'<br>';
$b=$b++;
echo $b,'<br>';
$b=++$b;
echo $b,'<br>';
$b=$b--;
echo $b,'<br>';
$b=--$b;
echo $b,'<br>';
$b=$b**4;
echo $b,'<hr>';
// 1.2 字符串运算符:连接符 .
$var='My name is ';
$var.='BAOYU';
echo $var.'<br>';
// 1.3 赋值运算符:赋值符 =
// 1.4 比较运算符:
// > < >= <= == === != !== <=>
var_dump(10 > 20);
var_dump(10 < 20);
var_dump(10 >= 20);
var_dump(10 <= 20);
var_dump(10 == 10);
var_dump(10 === '10');
var_dump(10 != 20);
var_dump(10 !== '20');
var_dump(10 <=> 20);
echo '<br>';
// 1.5 逻辑运算符:
// &&与 ||或 !非 xor异或
var_dump((5<8) && 6>9);
var_dump((5<8) || 6>9);
var_dump(!(5<8));
var_dump((5<8) xor 6>9);
echo '<br>';
// 1.6 三元运算符:
// ?:仅判断表达式 //条件 ? true : false //简化双分支if
$price = 900;
echo $price > 1000 ? '太贵了<br>' : '真便宜<br>';
// ??判断变量存在且不为空/null // 设置变量默认值
$password;
$password = $password ?? 'root';
echo $password,'<br>';
// 1.7 错误屏蔽符:
// @屏蔽单行代码执行错误
echo @$username,'<br>';
///////////////////////////////////////////////
## 2.流程控制:if判断
// 2.1 单分支条件判断:判断为true则执行,不为true则不执行
$a=80;
// 常规语法
if($a>=60){
echo '合格了';
}
// 模板语法
if($a>=60) : echo '合格了'; endif;
// 2.2 双分支条件判断:判断为true则执行第一个大括号里的代码,为flase则执行else后面大括号里的代码
// 常规语法
if($a>=60){
echo '合格了';
}else{
echo '不合格';
}
// 模板语法
if($a>=60):
echo '合格了';
else:
echo '不合格';
endif;
// 2.3 多分支判断
// 常规语法
if($a>=100 ){
echo '满分';
}elseif($a>=90){
echo '优秀';
}elseif($a>=80){
echo '非常好';
}elseif($a>=70){
echo '良好';
}elseif($a>=60){
echo '合格';
}else{
echo '不合格';
}
// 模板语法
if($a>=100 ):
echo '满分';
elseif($a>=90):
echo '优秀';
elseif($a>=80):
echo '非常好';
elseif($a>=70):
echo '良好';
elseif($a>=60):
echo '合格';
else:
echo '不合格';
endif;
// 2.4 switch多条件判断
// 常规语法
switch($a){
case $a>=100:
echo '满分';
break;
case $a>=90:
echo '优秀';
break;
case $a>=80:
echo '非常好';
break;
case $a>=70:
echo '良好';
break;
case $a>=60:
echo '合格';
break;
default:
echo '不合格';
}
// 模板语法
switch($a):
case $a>=100:
echo '满分';
break;
case $a>=90:
echo '优秀';
break;
case $a>=80:
echo '非常好';
break;
case $a>=70:
echo '良好';
break;
case $a>=60:
echo '合格';
break;
default:
echo '不合格';
endswitch;
///////////////////////////////////////////////
// 3.流程控制:循环结构
$b=10;
$c=1;
// 3.1 入口判断型:while
while($c<$b){
$c=$c+1;
echo $c;
}
$b=10;
$c=1;
while($c<$b):
$c=$c+1;
echo $c;
endwhile;
// 3.2 出口判断型:do...while
$b=10;
$c=1;
do{
$c=$c+1;
echo $c;
}while($c<$b);
// 3.3 循环控制:for
$city=['北京','南京','上海','广州'];
for ( $i = 0; $i < count($city); $i++ ) {
echo $city[$i];
}
for ($i = 0; $i < count($city); $i++) :
echo $city[$i];
endfor;
reset($city);
$city=['北京','南京',false,'上海',null,'广州'];
for ( $i = 0 ; $i < count($city); $i++):
if(!$city[$i])continue;
echo $city[$i].'<br>';
if($city[$i]==='广州')break;
endfor;