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+=b | a=a+b |
-= | 加等 |
*= | 乘等 |
/= | 除等 |
%= | 摸等 |
a.=b | a=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,' ';
}
复制代码
break中断是当前循环,如果想要中断多重循环,在break后面加上需要中断循环的层数(break N)
for($i=1;$i<=10;$i++){
for($j=1;$j<=$i;$j++){
echo $j,' ';
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,' ';
}
复制代码
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>
复制代码