4. PHP运算符、判断语句、循环语句

1.运算符
a.算术运算符
一元运算符二元运算符
负号(一元减)+
++-
--*
null/
null%
  • 在js中,+可以做数字和字符串相加。在PHP中,+只能做数字相加。
  • ++是递增1,--是递减1,要注意++前置和++后置
  • ++前置是先自增,++后置是后自增
<?php
    $num0 = 10;
    echo $num0++; //10
    echo '<br>';
    $num1 = 10;
    echo ++$num1; //11
?>
复制代码
$num = 5;
echo (++$num) + (++$num) + (++$num); //6 + 7 + 8 = 21
复制代码
$num = 5;
echo ($num++) + ($num++) + ($num++); //5 + 6 + 7 = 18
复制代码
b.关系运算符
运算符描述
>大于
>=大于等于
<小于
<=小于等于
==等于
!=不等于
===全等于
!==不全等于

比较运算符的结果不是 true 就是 false

c.逻辑元素符
运算符描述
&&
!
  • 逻辑运算符的作用是用来连接比较运算符的
  • 非运算符去括号,每个表达式取非,或变与,与变或
d.字符串连接符
echo 'aa'.'bb'.'cc'; //aabbcc
复制代码
e.赋值运算符
运算符描述
=赋值
a+=ba=a+b
-=加等
*=乘等
/=除等
%=摸等
a.=ba=a.b
f.三元运算符

语法: 表达式?值:值

$num = 20;
echo $num%2 == 0? '偶数':'奇数'; //偶数
复制代码
2.判断语句

a.单分支 语法:

if(条件){
    //代码
}
复制代码

如果if块中就一句代码,则大括号是可以省略的。

if(20>10)echo 'true';
复制代码

替代语法 { = : } = endif

if(20>10):
    echo 'true';
endif;

for():
endfor;
复制代码

b.双分支 语法:

if(条件){
    //代码
}else{
    //代码
}
复制代码

c.多分支 语法:

if(条件){
    //代码
}elseif(条件){
    //代码
}else{
    //代码
}
复制代码

d.多路选择 语法:

switch(表达式){
    case 常量:
    代码;
    break;
    case 常量:
    代码;
    break;
    default:
    匹配失败
}
复制代码

++判断变量是否为空: 在处理一个没有定义的变量时候会报错,所以在处理变量之前,我们先要判断一下变量,判断的函数常用如下两个++

函数描述
isset()判断变量是否有值,并且值不为null
empty()判断变量是否为 只要能转成bool为false的值,通过empty检测都为空

e.判断闰年

  • 能被4整除,但不能被100整除
  • 能被400整除

  • trim():去除数据两边的空格
  • is_numeric():判断是否是数字或数字字符串
  • is_int():是否是整型
<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>PHP</title>
</head>

<body>
    <form action="" method="post">
        <input type="text" name="year"><input type="submit" name="button" value="提交">
    </form>
    <?php
        // 判断是否按了提交按钮
        if(!empty($_POST)){
            $year=trim($_POST['year']);	//获取年份并去除两边的空格
            if($year=='')
                echo '您没有输入年份';
            else {
                if(is_numeric($year)){	//判断是否是数字或数字字符串
                    $year+=0;	//将字符串转成数字型
                    if(is_int($year)){//判断是否是小数
                        if($year>=0){//判断是否是负数
                            if($year%4==0 && $year%100!=0 || $year%400==0)
                                echo "{$year}是闰年";
                            else
                                echo "{$year}是平年";
                        }else{
                            echo '年份必须是正整数';
                        }
                    }else {
                        echo '您输入的是小数';
                    }
                }else {
                    echo '您输入的不是数字';
                }
            }
        }
    ?>
</body>
</html>
复制代码
e.elseif和else if的区别

elseif是多分支,else if是嵌套if语句。 这两个虽然语义不一样,但是最终的结果是一样的。他们在替代语法上才能体现出来。

else if(){
    
}
==
else {
    if(){
        
    }
}
复制代码
3.循环语句

当一段代码重复执行多次执行,需要用到循环

a.for

for循环执行结束后,$i的变量还是存在的

标准语法:

for($i=0; $i<10; $i++){
    //执行代码 
}
复制代码

替代语法:

for($i=0; $i<10; $i++):
    //执行代码 
endfor
复制代码

for循环自动分行:

<table>
    <tr>
        <?php
            for($i=1; $i<=100; $i++):
        ?>
            <td><img src="images/<?php echo $i?>.bmp" /></td>
        <?php
            if($i%10==0)
                echo '</tr><tr>';
            endfor;
        ?>
    </tr>
</table>
复制代码

多条语句组成表达式:

for($i=1,$j=9; $i<=$j; $i++,$j--) {
	echo "10可以分为{$i}和{$j}<br>";
}
//如果条件语句有两条组成,后面条件结果把前面条件结果给覆盖了
复制代码
b.while

标准语法:

$num = 0;
$i = 1;
while($i<=100){
    $num += $i++;
}
echo $i; //101
复制代码

替代语法:

while(条件){
    //执行代码
}
复制代码
c.do-while
do{

}while(条件);
复制代码
d.foreach

用来遍历数组

语法:

foreach(数组 as 值){
}

foreach(数组 as 键=>值){
}
复制代码

示例:

<?php
    $stu_array = array('李白','大白','小白');
    foreach($stu_array as $stu){
        echo $stu,'<br>';
    }
    //李白
    //大白
    //小白
    echo '<hr>';
    foreach($stu_array as $key => $stu){
        echo $key,$stu,'<br>';
    }
    // 0李白
    // 1大白
    // 2小白
?>
复制代码

示例:

<?php
if(isset($_POST['button'])) {
	if(empty($_POST['hobby'])){
		echo '你太内向了';
	}else {
		$hobby=$_POST['hobby'];	//获取爱好
		for($i=0,$n=count($hobby); $i<$n; $i++) {	//循环输出爱好
			echo $hobby[$i],'<br>';
		}
	}
}
?>
<form method="post" action="">
	爱好:
	<input type="checkbox" name="hobby[]" value='爬山'>爬山
	<input type="checkbox" name="hobby[]" value='读书'>读书
	<input type="checkbox" name="hobby[]" value='游泳'>游泳 <br />
	<input type="submit" name="button" value="提交">
</form>
复制代码
e.for、while、do-while的区别
  • 这三个循环可以相互代替,
  • 明确知道循环多少次首选for循环
  • 不知道循环多少次,一直循环到条件不成立为止,选while和do-while.
  • While先判断再执行,do-while选执行再判断
  • ++while条件不成立就不执行,do-while条件不成立也要执行一次++
  • 获取数组的长度 count()和sizeof()
f.替代语法总结

PHP提供了替代语法,主要用于在PHP代码和HTML代码混编的时候使用,具有替换语法的语句有if、switch、for、while、foreach,将左大括号变冒号,右大括号变endXXX。

g.跳转语句
  • break:中断循环
for($i=1;$i<=10;$i++){
    if($i==5){
        break; //等于5的时候跳出循环 // 1 2 3 4 5
    }
    echo $i,'&nbsp;';
}
复制代码

break中断是当前循环,如果想要中断多重循环,在break后面加上需要中断循环的层数(break N)

for($i=1;$i<=10;$i++){
    for($j=1;$j<=$i;$j++){
        echo $j,'&nbsp;';
        if($j==5){
            break 2; //等于5的时候中断2重循环 // 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 
        }
    }
}
复制代码
  • continue: 跳出当前循环,进入下一个循环(continue后面也可以带循环的层数,continue N)
for($i=1;$i<=10;$i++){
    if($i==5){
        continue; //等于5的时候跳出当前循环 进入下一个循环 // 1 2 3 4 6 7 8 9 10 
    }
    echo $i,'&nbsp;';
}
复制代码
h.翻转数组
$stu = array('tom','berry','ketty','rose','jack');
print_r($stu); echo '<hr>';

for($i=0,$j=count($stu)-1; $i<$j; $i++){
	$temp=$stu[$i];
	$stu[$i]=$stu[$j];
	$stu[$j]=$temp;
}

print_r($stu); echo '<hr>';
复制代码
i.九九乘法表
<style type="text/css">
table{
	width:780px;
	margin:auto;
	border-collapse:collapse; /*塌陷*/
}
tr{
	height:30px;
}
table,td{
	border:#000 solid 1px;
}
</style>
<table>
	<?php
	for($i=1; $i<=9; $i++) {
		echo '<tr>';
		for($j=1; $j<=$i; $j++) {
			echo "<td>{$j}*{$i}=".($j*$i),'</td>';
		}
		echo '</tr>';
	}
	?>
</table>
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值