<?php
// 流程控制
// 一、分支结构
// 1、单分支
$wages=3500;
if($wages>3000){
$party_fee=$wages * 0.01;
}
echo "党费:"."$party_fee"."元";
echo "<br>";
// 模板语法
if($wages>3000):
$party_fee=$wages * 0.01;
endif;
echo "党费:"."$party_fee"."元";
echo "<br>";
// 2、双分支
$wages=2800;
if($wages>3000){
$party_fee=$wages * 0.01;
}else{
$party_fee=$wages * 0.005;
}
echo "党费:"."$party_fee"."元";
echo "<br>";
// 模板语法
if($wages>3000):
$party_fee=$wages * 0.01;
else:
$party_fee=$wages * 0.005;
endif;
echo "党费:"."$party_fee"."元";
echo "<br>";
// 3、多分支
$wages=15000;
if($wages>3000&&$wages<=5000){
$party_fee=$wages * 0.01;
}elseif($wages>5000&&$wages<=10000){
$party_fee=$wages * 0.15;
}elseif($wages>10000){
$party_fee=$wages * 0.2;
}else{
$party_fee=$wages * 0.005;
}
echo "党费:"."$party_fee"."元";
echo "<br>";
// 模板语法
if($wages>3000&&$wages<=5000):
$party_fee=$wages * 0.01;
elseif($wages>5000&&$wages<=10000):
$party_fee=$wages * 0.15;
elseif($wages>10000):
$party_fee=$wages * 0.2;
else:
$party_fee=$wages * 0.005;
endif;
echo "党费:"."$party_fee"."元";
echo "<br>";
// 4、switch:简化多分支
$wages=8000;
switch (true){
case $wages>3000&&$wages<=5000:
$party_fee=$wages*0.01;
break;
case $wages>5000&&$wages<=10000:
$party_fee=$wages*0.15;
break;
case $wages>10000:
$party_fee=$wages*0.2;
break;
default:$party_fee=$wages * 0.005;
}
echo "党费:"."$party_fee"."元";
echo "<br>";
// 模板语法
switch (true):
case $wages>3000&&$wages<=5000:
$party_fee=$wages*0.01;
break;
case $wages>5000&&$wages<=10000:
$party_fee=$wages*0.15;
break;
case $wages>10000:
$party_fee=$wages*0.2;
break;
default:$party_fee=$wages * 0.005;
endswitch;
echo "党费:"."$party_fee"."元";
echo "<br>";
// 二、循环结构
// 1、入口判断型
$fruits=["苹果","香蕉","芒果","西瓜","桃子"];
// $fruit=current($fruits)循环条件
while ($fruit=current($fruits)){
echo $fruit;
// 更新循环
next($fruits);
}
reset($fruits);
// 模板语法
while ($fruit=current($fruits)):
echo $fruit;
// 更新循环
next($fruits);
endwhile;
reset($fruits);
echo "<hr>";
// 2、出口判断型
do{
$fruit=current($fruits);
echo $fruit;
next($fruits);
}
while($fruit=current($fruits));
reset($fruits);
echo "<hr>";
// 3、计数型
echo "数组中有:".count($fruits);
// $a=0变量初始化
// $a<count($fruits)循环条件
// $a++更新循环条件
for($a=0;$a<count($fruits);$a++){
echo $fruits[$a];
}
echo "<hr>";
// continue: 终止当前循环,提前进入下一轮
// break; 跳出本层
for($a=0;$a<count($fruits);$a++):
if(!$fruits[$a]) continue;
echo $fruits[$a];
if($fruits[$a]==="香蕉") break;
endfor;
?>
<?php
// 算数运算符
$x=46;
$y=5;
echo $x+$y."<br>";
echo $x-$y."<br>";
echo $x*$y."<br>";
echo $x/$y."<br>";
echo $x%$y."<br>";
echo -$x."<br>";
// 赋值运算符
$x=46;
echo $x."<br>";
$x+=21;
// $x=$x+21;
echo $x."<br>";
$x-=15;
// $x=$x-15;
echo $x."<br>";
$x*=1;
// $x=$x*1;
echo $x."<br>";
$x/=3;
// $x=$x/3;
echo $x."<br>";
$x%=3;
// $x=$x%3;
echo $x."<br>";
// 递增递减运算符
//先返回后加
echo $x++."<br>";
// 先加后返回
echo ++$x."<br>";
// 先减后返回
echo --$x."<br>";
// 先返回后减
echo $x--."<br>";
// 字符串运算符
$x=123;
$y="abc";
echo $x.$y;
echo "<br>";
// 比较运算符
$x=11;
$y="11";
// 值相等则为真
var_dump ($x==$y);
echo "<br>";
// 严格相等才为真
var_dump ($x===$y);
echo "<br>";
// 值不等,则为真
var_dump ($x!=$y);
echo "<br>";
// 严格不等才为真
var_dump ($x!==$y);
echo "<br>";
// 太空船比较符,又叫组合比较符
$x=11;
$y=6;
var_dump ($x<=>$y);
var_dump ($y<=>$x);
var_dump ($x<=>$x);
echo "<br>";
// 逻辑运算符
$x=3;
$y=8;
// &&和运算,都真才真
var_dump ($x<5&&$y>5);
// ||或运算,有一真则为真
var_dump ($x<5||$y<5);
// !非运算,不真则为真
var_dump (!$x>5);
// 三元运算符
// ? : 简化双分支if
$age=10;
if($age > 18 ){echo "成年人";}
else{echo "未成年人" ;}
// 条件 ? true : false
echo $age > 18 ?"成年人" : "未成年人";
// ?? null合并运算符
// 变量=变量??默认值
$sex="男";
// if($sex=$sex){echo "$sex";}
// else{echo "男" ;}
echo $sex=isset($sex)?"$sex":"男";
echo $sex=$sex ??"男";
// 错误运算符
// 加上@可以屏蔽错误,但语法除外
@$x=abc;
?>
作业总结:
1、条件 ? true : false
echo $age > 18 ?”成年人” : “未成年人”;
2、变量 = 变量 ?? 默认值
echo $sex=$sex ??”男”;
3、&&和运算,都真才真
||或运算,有一真则为真
!非运算,不真则为真
4、太空船比较符($y<=>$x)
$y>$x,返回1; $y=$x,返回0;$y<$x,返回-1
5、错误运算符(加上@可以屏蔽错误,但语法除外)
6、分支结构
a、 if(条件){}
elseif(条件){执行结果;}
elseif(条件){执行结果;}
else{执行结果;}
b、模板语法
if(条件):执行结果;
elseif(条件):执行结果;
elseif(条件):执行结果;
else:执行结果;
endif;
c、swtich简化
switch(true){
case(条件):执行结果;
break;
case(条件):执行结果;
break;
dault:执行结果;
}
7、循环结构
a、入口判断型
while (循环条件){
echo 循环值;
更新循环;}
例如:while ($fruit=current($fruits)){
echo $fruit; next($fruits);}
b、出口判断型
do{循环条件;
echo 循环值;
更新循环; }
while(循环条件);
c、计数型
for(变量初始化;循环条件;更新循环条件){
echo 循环值;}
例如:
for($a=0;$a<count($fruits);$a++){
if(!$fruits[$a]) continue;
echo $fruits[$a];
if($fruits[$a]===”香蕉”) break;}
【continue: 终止当前循环,提前进入下一轮
break; 跳出本层】
current(array) :获取数组中的当前元素的值;
next(array) : 将内部指针指向数组中的下一个元素,并输出;
reset(array):将内部指针指向数组中的第一个元素,并输出;
isset(变量) 函数用于检测变量是否已设置并且非 NULL;
var_dump() 函数用于输出变量的相关信息,包括表达式的类型与值.