首页
留言
友情链接
Search
1
如何使用JavaScript获取和设置CSS root变量值
830 阅读
2
春和 《江海共余生》
325 阅读
3
清除浮动,单行多行超出用...
295 阅读
4
Centos7 下编译安装php8.2
285 阅读
5
中国历史朝代顺序图
228 阅读
分享
Web前端
html&css
javascript
Vue
shopify
shoplazza
后端
ThinkPHP
YII2
服务器端
软件安装
问题合集
历史
故事
诗词
生活
学习
其他
抖音
快手
小视频
随笔
易经
书摘
登录
/
注册
Search
标签搜索
诗词
sunshine
累计撰写
142
篇文章
累计收到
14
条评论
首页
栏目
分享
Web前端
html&css
javascript
Vue
shopify
shoplazza
后端
ThinkPHP
YII2
服务器端
软件安装
问题合集
历史
故事
诗词
生活
学习
其他
抖音
快手
小视频
随笔
易经
书摘
页面
留言
友情链接
搜索到
23
篇与
的结果
2022-10-11
PHP基础(3)
1.1 目标理解循环结构的应用场景;掌握while循环实现迭代原理;掌握for循环实现迭代原理;掌握foreach循环实现迭代原理;理解二维数组的遍历原理;理解循环控制的概念;掌握循环控制中continue和break的效果和区别;理解函数的作用;掌握自定义函数的定义;理解形参的工作原理以及作用;了解参数默认值的工作原理;了解强类型形参的作用;理解返回值return在函数中的实际含义;了解强类型返回值的作用;掌握函数的调用;掌握可变函数的使用方式;了解匿名函数的使用方式;知道如何在API中查找所需使用的系统函数;1.2 循环1.2.1 forfor(初始值;条件;增量){ //循环体 }注意:循环中千万不能出现死循环思考:如下代码输出什么例题一:<?php for($i=1;$i<=10;$i+=2){ echo "{$i}:锄禾日当午<br>"; } /* 1:锄禾日当午 3:锄禾日当午 5:锄禾日当午 7:锄禾日当午 9:锄禾日当午 */例题二:<?php for($i=1;$i<=10;){ } //死循环,$i永远等于1,1永远小于10,条件永远为true例题三<?php for($i=1;;$i++){ } //死循环,只要没有条件都是死循环例题四<?php for(;;){ } //这是一个经典的死循环1.2.3 思考题1、如下代码循环了几次?for($i=1;$i!=5;$i++){ } //循环了4次2、在循环N次循环体中,初始值执行了几次?条件执行了几次?增量执行了几次?初始值执行了1次 条件执行了N+1次 增量执行了N次3、在循环执行完毕后,$i的值是存在的。<?php for($i=1;$i<=3;$i++){ } echo $i; //41.2.4 while、do-while语法while(条件){ } ------------------------- do{ }while(条件)小结:1、for、while、do-while可以相互替换2、如果明确知道循环多少次首先for循环,如要要循环到条件不成立为止选while或do-while3、先判断再执行选while,先执行再判断选do-while4、while循环条件不成立就不执行,do-while至少执行一次1.2.5 例题1、使用三种循环实现从1加到100<?php //1、for循环实现 $sum=0; for($i=1;$i<=100;$i++){ $sum+=$i; //$sum=$sum+$i; } echo $sum; //分析 /** * $i $sum 1 1 2 1+2 3 1+2+3 4 1+2+3+4 ... 100 1+2+3+++100 */ ------------------------------------------------- //2、while循环 $i=1; $sum=0; //保存和 while($i<=100){ //方法一 /* $sum+=$i; $i++; */ //方法二 $sum+=$i++; } echo $sum; -------------------------------------------------- //3、do-while循环 $i=1; $sum=0; do{ $sum+=$i; $i++; }while($i<=100); echo $sum,'<br>'; //5050 //可以有如下更改 $i=1; $sum=0; do{ $sum+=$i++; //++后置 }while($i<=100); echo $sum,'<br>'; //5050 //可以做如下更改 $i=1; $sum=0; do{ $sum+=$i; }while(++$i<=100); //++前置 echo $sum,'<br>'; //5050小结:1、for、while、do-while可以相互替换2、结合++前置和++后置考虑逻辑1.2.6 多语句表达式初始值、增量可以由多条语句组成例题:数字分解<?php for($i=1,$j=9;$i<=$j;$i++,$j--){ echo "10可以分成{$i}和{$j}<br>"; } //运行结果 /* 10可以分成1和9 10可以分成2和8 10可以分成3和7 10可以分成4和6 10可以分成5和5 */小结:初始值、增量可以写多个表达式,但是条件一般只写一个,如果条件写多个,只是最后一个条件起作用1.2.7 双重循环1、打印阶梯数字<?php for($i=1;$i<=9;$i++){ //循环行 for($j=1;$j<=$i;$j++){ //循环列 echo $j,' '; } echo '<br>'; } //运行结果 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 2、打印九九乘法表<style type="text/css"> table{ width:980px; } table,td{ border:solid 1px #0000FF; border-collapse:collapse; } td{ height:40px; } </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>运行结果小结:规则:当前列*当前行1.28 foreachforeach循环是用来遍历数组语法//语法一 foreach(数组 as 值){ } //语法二 foreach(数组 as 键=>值){ }例题<?php $stu=['tom','berry','ketty']; foreach($stu as $v){ echo $v,'<br>'; } /** tom berry ketty */ echo '<hr>'; ----------------------------------------------------------- foreach($stu as $k=>$v){ echo "{$k}:{$v}<br>"; } /** 0:tom 1:berry 2:ketty */1.3 跳转语句1.3.1 语法break:中断循环continue:中断当前循环,进入下一个循环例题:<?php for($i=1; $i<=10; $i++) { if($i==5) break; //中断循环 echo "{$i}:锄禾日当午<br>"; } //结果 1:锄禾日当午 2:锄禾日当午 3:锄禾日当午 4:锄禾日当午 -------------------------------------------------- <?php for($i=1; $i<=10; $i++) { if($i==5) continue; //跳出5,进入6循环 echo "{$i}:锄禾日当午<br>"; } 1:锄禾日当午 2:锄禾日当午 3:锄禾日当午 4:锄禾日当午 //注意,没有打印第5句 6:锄禾日当午 7:锄禾日当午 8:锄禾日当午 9:锄禾日当午 10:锄禾日当午 1.3.2 中断多重循环break和continue默认中断、跳出1重循环,如果调中断、跳出多重循环,在后面加一个数字。<?php for($i=1; $i<=10; $i++) { for($j=1;$j<=$i;$j++){ echo $j.' '; if($j==5){ break 2; //中断2重循环 } } echo '<br>'; } //运行结果 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 练习<?php for($i=1; $i<=10; $i++) { switch($i){ case 5: break 2; } echo $i,'<br>'; } //结果 1 2 3 4小结:switch的本质是循环了一次的循环1.4 替代语法php中除了do-while以外,其他的语法结构都有替代语法规则:左大括号变冒号,右大括号变endXXX//if的替代语法 if(): elseif(): else: endif; //switch替代语法 switch(): endswitch; //for for(): endfor; //while while(): endwhile; //foreach foreach(): endforeach;例题:在混编的时候用替代语法<body> <?php for($i=1;$i<=10;$i++): if($i%2==0): ?> <?php echo $i;?>:锄禾日当午<br> <?php endif; endfor; ?> </body> //运行结果 2:锄禾日当午 4:锄禾日当午 6:锄禾日当午 8:锄禾日当午 10:锄禾日当午小结:可以通过替代语法证明else if之间如果有空格是嵌套if语句。<?php $score=80; if($score>=90): echo 'A'; elseif($score>=80): //elseif之间没有空格,如果有空格是嵌套if语句 echo 'B'; else: echo 'C'; endif; ---------------------------------------- <?php $score=80; if($score>=90): echo 'A'; else: if($score>=80): echo 'B'; else: echo 'C'; endif; endif;1.5 函数1、函数就是一段代码块2、函数可以实现模块化编程1.5.1 函数定义function 函数名(参数1,参数2,...){ //函数体 }通过函数名()调用函数<?php //定义函数 function show() { echo '锄禾日当午<br>'; } //调用 show(); //锄禾日当午 SHOW(); //锄禾日当午 函数名不区分大小写小结:1、变量名区分大小写2、关键字、函数名不区分大小写1.5.2 可变函数将函数名存储到变量中<?php function show($args) { echo $args,'<br>'; } $str='show'; //将函数名保存到变量中 $str('锄禾日当午');例题:随机调用函数<?php //中文显示 function showChinese() { echo '锄禾日当午<br>'; } //英文显示 function showEnglish() { echo 'chu he re dang wu<br>'; } //测试 $fun=rand(1,10)%2?'showChinese':'showEnglish'; //可变变量 $fun();1.5.3 匿名函数匿名函数就是没有名字的函数<?php //匿名函数 $fun=function(){ echo '锄禾日当午<br>'; }; //匿名函数调用 $fun();1.5.4 参数传递函数的参数有形式参数和实际参数形式参数是定义函数时候的参数,只起形式的作用,没有具体的值实际参数的调用函数时候的参数,有具体的值<?php function fun($num1,$num2) { echo $num1+$num2; } fun(10,20); //30默认情况下,参数的传递是值传递<?php $num=10; function fun($args) { $args=100; } fun($num); echo $num; //10地址传递<?php $num=10; //地址传递 function fun(&$args) { //&符表示取地址 $args=100; } fun($num); echo $num; //100小结1、函数的参数默认是值传递2、如果要传递地址,在参数前面加&3、如果是地址传递,不能直接写值function fun(&$args) { $args=100; } fun(10); //Fatal error: Only variables can be passed by reference (只有变量才能传递引用)1.5.5 参数默认值1、在定义函数的时候给形参赋值就是参数的默认值<?php //参数的默认值 function fun($name,$add='地址不详') { echo '姓名:'.$name,'<br>'; echo '地址:'.$add,'<hr>'; } //测试 fun('tom','北京'); fun('berry');2、默认值必须是值,不能用变量代替<?php $str='地址不详' function fun($name,$add=$str) { //错误,默认值可以使用变量 echo '姓名:'.$name,'<br>'; echo '地址:'.$add,'<hr>'; }3、默认值可以使用常量<?php define('ADD','地址不详'); function fun($name,$add=ADD) { //默认值可以使用常量 echo '姓名:'.$name,'<br>'; echo '地址:'.$add,'<hr>'; } //测试 fun('berry');4、有默认值的写在后面,没有默认值的写在前面<?php //没有默认值的写在前面,有默认值写在后面 function fun($name,$age='未知',$add='地址不详') { echo "姓名:{$name}<br>"; echo "年龄:{$age}<br>"; echo "地址:{$add}<br>"; } fun('tom'); //运行结果 姓名:tom 年龄:未知 地址:地址不详1.5.6 参数个数不匹配<?php function fun($num1,$num2) { echo $num1,'<br>'; echo $num2,'<br>'; } //fun(10); //实参少于形参(报错) fun(10,20,30); //实参多于形参,只取前面对应的值获取所有传递的参数<?php function fun() { //echo func_num_args(),'<br>'; //获取参数的个数 $args=func_get_args(); //获取参数数组 print_r($args); } fun(10); fun(10,20); fun(10,20,30); 1.5.7 参数约束1、定义变长参数(了解)<?php // ...$hobby包含了除了前面两个参数以外的所有参数 function fun($name,$age,...$hobby) { echo '姓名:'.$name,'<br>'; echo '年龄:'.$age,'<br>'; print_r($hobby); echo '<hr>'; } fun('tom',22); fun('berry',25,'读书','睡觉');运行结果多学一招:function fun(...$args) { print_r($args); echo '<br>'; } $num=[10,20]; echo '<pre>'; fun(...$num); //将数组中的参数展开 //运行结果 /* Array ( [0] => 10 [1] => 20 ) */2、参数类型约束//类型约束 function fun(string $name,int $age) { echo "姓名:{$name},'<br>'"; echo "年龄:{$age}<br>"; } fun('tom',22); //约束$name是字符串型,$age是整型3、返回值约束function fun(int $num1,int $num2):int { //必须返回整型 return $num1+$num2; } echo fun(10,20); //30可以约束:string、int、float、bool、数组//约束返回类型是数组 function fun():array { } //约束return后面不能有返回值 必须在7.1以后的版本中才支持 function fun():void { //void是空的意思 return; } fun();1.6 return1.6.1 终止脚本执行<?php echo '锄禾日当午<br>'; return; //终止脚本执行 echo '汗滴禾下土<br>'; //不执行提醒:return只能中断当前页面,如果有包含文件,只能中断包含文件例题:6-demo.php<?php echo '锄禾日当午<br>'; require './test.php'; //包含文件 echo '汗滴禾下土<br>';test.php<?php echo 'aaa<br>'; return; //只能中断test.php echo 'bbb<br>';运行结果如果要完全终止脚本执行,使用exit()、或die()echo 'aaa<br>'; exit(); //die() echo 'bbb<br>';1.6.2、返回页面结果test.php<?php return array('name'=>'tom','sex'=>'男');6-demo.php<?php $stu=require './test.php'; print_r($stu); //Array ( [name] => tom [sex] => 男 ) 小结:在项目中引入配置文件就使用这种方法1.6.3 函数的返回和终止return在函数中使用作用有二1、终止函数执行2、返回值function fun() { echo 'aaa'; return ; //终止函数执行 echo 'bbb'; } fun(); //aaa ---------------------------------- function fun() { return 10; //返回值 } echo fun(); //101.7 练习讲解计算器<body> <?php $num1=''; //$num1的初始值 $num2=''; //$num2的初始值 $op=''; //操作符 $result=''; //结果 if(!empty($_POST)) { $num1=$_POST['num1']; $num2=$_POST['num2']; $op=$_POST['op']; //操作符 switch($op){ case '+': $result=$num1+$num2; break; case '-': $result=$num1-$num2; break; case '*': $result=$num1*$num2; break; case '/': $result=$num1/$num2; break; } } ?> <form method="post" action=""> <input type="text" name="num1" value='<?php echo $num1?>'> <select name="op"> <option value="+" <?php echo $op=='+'?'selected':''?>>+</option> <option value="-" <?php echo $op=='-'?'selected':''?>>-</option> <option value="*" <?php echo $op=='*'?'selected':''?>>*</option> <option value="/" <?php echo $op=='/'?'selected':''?>>/</option> </select> <input type="text" name="num2" value='<?php echo $num2?>'> <input type="submit" name="button" value="="> <input type="text" name="result" value='<?php echo $result?>'> </form> </body>运行结果1.8 练习1、 通过for循环将数组中值求和、求平均值2、数组翻转3、遍历二维数组4、 循环输出1-100,其中3的倍数输出A,5的倍数输出B,15输出C。5、 打印水仙花数6、 打印100以内的斐波那契数(迭代法) 1 1 2 3 5 8 13 21 .....7、 打印星星8、 生成颜色面板
2022年10月11日
33 阅读
0 评论
0 点赞
2022-10-11
PHP基础(2)
1.1 目标理解常量的概念掌握常量的使用方式理解魔术常量的概念和应用理解string类型中单引号和双引号的区别掌握PHP中数组的访问方式;理解PHP代码的执行解析过程;掌握逻辑运算符的使用;理解短路运算的原理;掌握自操作运算符的使用;理解前置和后置自操作符的区别和原理;了解强制转换的价值和应用场景;理解if分支结构的应用场景;理解switch分支结构的应用场景;理解switch和if分支的区别;1.2 常量在整个运行过程中,固定不变的值1.2.1 定义常量1、用define()函数定义常量define(常量名,值,[是否区别大小写]) true表示不区分大小写,默认是false 常量名前没有$符 常量名推荐使用大写例题:<?php define('NAME','tom'); //定义常量 define('PI',3.14,true); //定义常量,不区分大小写 echo NAME,'<br>',Pi; //true表示不区分大小写,默认是区分大小写的。2、定义常量可以用特殊字符,但是在调用的时候必须用constant关键字调用define('%-%','tom'); echo constant('%-%'); //通过constant获取特殊字符作为常量名的常量3、判断常量是否定义,通过defined()判断常量是否已经定义if(!defined('NAME')){ define('NAME','berry'); } echo NAME; //berry4、还可以使用const关键字定义常量const NAME='tom'; echo NAME; //tom小结:1、定义常量有两种方式,define()和const2、常量在整个运行过程中值保持不变,常量不能重新定义3、使用constant获取特殊字符做的常量名的值4、defined()用来判断常量是否被定义1.2.2 预定义常量PHP预先定义好的常量例题echo PHP_VERSION,'<br>'; //PHP版本号 echo PHP_OS,'<br>'; //PHP操作系统 echo PHP_INT_MAX,'<br>'; //PHP中整型的最大值 1.2.3 魔术常量魔术常量它们的值随着它们在代码中的位置改变而改变echo __LINE__,'<br>'; //获取当前行号 echo __FILE__,'<br>'; //文件的完整路径和文件名 echo __DIR__,'<br>'; //文件所在的目录1.3 数据类型数据类型有两种:强类型和弱类型PHP是弱类型1.3.1 基本类型(标量类型)1、整型存整数,PHP_INT_MAX获取整形最大值PHP支持8、10、16机制的整数<?php $num1=10; //十进制 $num2=010; //八进制(数字前面加0) $num3=0x10; //十六进制(数字前面加0x) echo $num1,'<br>'; //10 echo $num2,'<br>'; //8 echo $num3; //16进制转换机制缩写单词十进制decdecimalist二进制binbinary八进制octoctonary十六进制hexhexdecimalist例题PHP提供了进制转换函数echo decbin(123),'<br>'; //十进制转二进制 echo bindec(1111011),'<br>'; //二进制转十进制 echo dechex(123),'<br>'; //十进制转十六进制 echo hexdec('7b'),'<br>'; //十六进制转十进制 echo decoct(123); //十进制转八进制2、浮点型浮点数在内存中保存的是近似值浮点数不能参与比较var_dump(0.9==(1-0.1)); //bool(true) echo '<br>'; var_dump(0.1==(1-0.9)); //bool(false) 如果浮点数要比较,必须确定比较的位数var_dump(0.9==(1-0.1)); //bool(true) echo '<br>'; var_dump(0.1==(1-0.9)); //bool(false) echo '<br>'; var_dump(bccomp(0.1,1-0.9,5)); //比较小数点后面5位 int(0) 0表示相等提醒:如果一个整数超出了整形的范围,会自动的转成浮点型3、布尔型不能使用echo 和print输出布尔型,要使用var_dump()输出$flag=false; var_dump($flag); //bool(false) 4、字符串型在PHP中单引号字符串和双引号字符串是有区别的单引号字符串是真正的字符串双引号字符串要解析字符串中的变量例题$name='tom'; echo '我的名字叫$name','<br>'; //我的名字叫$name echo "我的名字叫$name",'<br>'; //我的名字叫tom例题:{ }取变量值$name='tom'; echo '$name是我的名字','<br>'; //$name是我的名字 echo "{$name}是我的名字",'<br>'; //{}表示获取变量的值(tom是我的名字) echo "${name}是我的名字",'<br>'; //$和{只要挨着一起就可以(tom是我的名字)输出特殊字符echo '毛主席说:\'上课不要睡觉\'','<br>'; //转义字符 毛主席说:'上课不要睡觉' echo '文件保存在c:\\'; //文件保存在c:\字符串定界符1、有<<<开头,后面跟的是标识符 2、字符串定界符的结束符必须顶格写,前面不能有任何的空白字符 3、字符串定界符分为两种,heredoc(双引号),nowdoc(单引号)1.3.2 复合类型1、数组在PHP中数组有两种形式,索引数组和关联数组索引数组:用整数做下标,默认从0开始,后面依次加一关联数组:用字符串做下标,通过=>符号将下标和值关联起来例题:数组的声明<?php //1、索引数组的声明 $stu=array('tom','berry','ketty'); //索引数组 print_r($stu); //输出数组 Array ( [0] => tom [1] => berry [2] => ketty ) echo '<hr>'; echo $stu[0],'<br>'; //tom echo $stu[1],'<br>'; //berry echo $stu[2],'<hr>'; //ketty ------------------------------------------ //2、关联数组 $emp=array('name'=>'李白','sex'=>'男','age'=>22); print_r($emp); //Array ( [name] => 李白 [sex] => 男 [age] => 22 ) echo '<hr>'; echo $emp['name'],'<br>'; //李白 echo $emp['sex'],'<br>'; //男 echo $emp['age']; //22练习:写出数组的下标$array=array(1=>'a','b','c','d'); print_r($array); //Array ( [1] => a [2] => b [3] => c [4] => d ) echo '<br>'; -------------------------- $array=array('a',2=>'b','c',5=>'d'); print_r($array); //Array ( [0] => a [2] => b [3] => c [5] => d ) echo '<br>'; ---------------------------- $array=array('a','name'=>'b','c','sex'=>'d'); print_r($array); //Array ( [0] => a [name] => b [1] => c [sex] => d ) echo '<br>'; ------------------------------ $array=array(1=>'a',1=>'b',1=>'c','d'); print_r($array); //Array ( [1] => c [2] => d ) 数组的下标只能是正整数和字符串思考如下下标$stu[true]='tom'; //转成1 $stu[false]='berry'; //转成0 $stu[12.9]='aa'; //转成12(取整数部分) $stu[-10]='bb'; //负数可以做下标 $stu[-12.3]='cc'; //取负整数 $stu['10']='dd'; //字符串数字转成数字 $stu['']='ee'; //空字符串也可以做下标 $stu[null]='ff'; //转成空字符串做下标 print_r($stu);短数组语法,可以直接通过中括号声明数组$stu=['tom','berry','ketty']; print_r($stu); //Array ( [0] => tom [1] => berry [2] => ketty ) 多学一招:在PHP7.1中可以支持数组的赋值//例题,两个数交换 $num1=10; $num2=20; [$num1,$num2]=[$num2,$num1]; echo $num1,'<br>',$num2;二维数组的声明$stu=[ ['name'=>'tom','sex'=>'男','age'=>22], ['name'=>'berry','sex'=>'女','age'=>23] ]; echo '<pre>'; print_r($stu); //运行结果 Array ( [0] => Array ( [name] => tom [sex] => 男 [age] => 22 ) [1] => Array ( [name] => berry [sex] => 女 [age] => 23 ) )多学一招:字符串可以通过数组的方式去调用echo 'abc'[0],'<br>'; //a echo 'abc'[-1],'<br>'; //c,从右边开始取第一个 7.1开始支持小结:1、数组在内存中一段连续的空间2、如果要保存同一类型的多个数据就使用数组2、对象对象在后面专门讲解(面向对象编程)1.3.3 特殊类型1、资源2、null提醒:在PHP中 null和NULL是一样的,不区分大小写1.3.4 类型转换1、自动类型转换:当提供的类型和需要的类型不一致的时候会自动进行类型转换$num=10; if($num){ //自动将数字转成布尔型 echo 'aa'; }else{ echo 'bb'; } --------------------------------- echo '20'-10; //自动的将字符串转成数字2、强制类型转换语法:(数据类型)数据<?php $num1='12'; var_dump($num1,(int)$num1,(float)$num1); //string(2) "12" int(12) float(12) 其他类型和布尔之间的转换规则:0、空为假,非0非空为真<?php var_dump((bool)'abc'); echo '<br>'; //bool(true) var_dump((bool)''); echo '<br>'; //bool(false) var_dump((bool)'0'); echo '<br>'; //bool(false) var_dump((bool)'0.0'); echo '<br>'; //bool(true) var_dump((bool)'00'); echo '<br>'; //bool(true) var_dump((bool)'false'); echo '<br>'; //bool(true) var_dump((bool)'null'); echo '<br>'; //bool(true) var_dump((bool)1); echo '<br>'; //bool(true) var_dump((bool)0); echo '<br>'; //bool(false) var_dump((bool)-10); echo '<br>'; //bool(true) var_dump((bool)0.0); echo '<br>'; //bool(false) var_dump((bool)array()); echo '<br>'; //bool(false) var_dump((bool)array(1)); echo '<br>'; //bool(true) var_dump((bool)array(false)); echo '<br>';//bool(true) var_dump((bool)null); echo '<br>'; //bool(false) 1.4 运算符1.4.1 算术运算符一元运算符二元运算符+++ * / % (取模)注意:在PHP中,算术运算符只能做数学运算。<?php echo '10'+'20','<br>'; //30 echo '10ab'+'20cd','<br>'; //30 echo 'ab10'+'cd20','<br>'; //0++前置:先自增再运算++后置:先运算再自增练习$num=10; $num++; echo $num; //11 ------------------------- $num=10; echo $num++; //10 ------------------------ $num=10; echo ++$num; //11练习<?php $num=5; echo (++$num)+(++$num)+(++$num); //21 ------------------------- <?php $num=5; echo ($num++)+($num++)+($num++); //181.4.2 关系运算符(比较运算符)> >= < <= == != === !==比较运算符的运算结果是布尔值1.4.3 逻辑运算符& 与:运算符两边的表达式都要计算 | 或:运算符两边的表达式都要计算 && 短路与:如果前面的条件不满足,后面的条件就不用计算了 || 短路或 ! 非例题<?php $a=5; $b=10; if($a>10 && ++$a>20) echo '你好吗'; echo $a; //5 //分析:$a>10为false, 与中只要有一个是false,另一个不用计算结果肯定是false,所以短路与++a就不计算了,结果是5 ---------------------------- <?php $a=5; $b=10; if($a<10 || ++$a>20) echo '你好吗'; echo $a; //5 //分析:短路或只要有一个为true,结果肯定是true,$a<10结果是true,后面++$a就不用计算了。1.4.4 赋值运算符= //赋值 += //a+=b a=a+b -= *= /= %=1.4.5 字符串连接符(.)echo 'aa'.'bb'; //字符串链接 aabb1.4.6 错误抑制符(@)错误抑制符只对表达式有效<?php echo @($aa+$bb); //错误抑制1.4.7 三元运算符(?:)语法:表达式?值1:值2 //表达式的值为true,返回值1,否则返回值2练习<?php $num=11; echo $num%2?'奇数':'偶数';1.4.8 null合并运算符(??)PHP7.0以后才支持例题<?php echo $name??'姓名不详'; //姓名不详多学一招:两个用来判断的函数isset():判断变量是否被设置,并且设置的不是null empty():检查一个变量是否为空,能转成false全部是空,['',0,0.0,array(),null]例题echo isset($name)?$name:'姓名不详'; //姓名不详 echo '<hr>'; $stu=array(); echo empty($stu)?'空':'非空'; //空1.5 判断1.5.1 语法单分支if(条件){ }双分支if(条件){ //代码块1 }else{ //代码块2 }多分支if(条件){ }elseif(条件){ //注意:elseif之间没有空格 }else{ }多路选择switch(表达式){ case 常量: //代码块 break; case 常量: //代码块 break; default: //代码块 }1.5.2 例题例题一、判断闰年(练习双分支)步骤:1、创建表单 2、提交数据 3、在服务器获取提交的数据,并判断代码实现<body> <?php if(!empty($_POST)){ //$_POST不为空说明有post提交的数据 //var_dump($_POST); $year=$_POST['year']; //获取年份 if($year==''){ echo '您没有输入年份'; }else{ if(is_numeric($year)){ //判断$year是否是数字或字符串数字 $year+=0; //将字符串数字转成数字型 if(is_int($year)){ //is_int用来检测变量是否是整型 if($year<1){ echo '年份必须正整数'; }else{ if($year%4==0 && $year%100!=0 || $year%400==0) echo "{$year}是闰年"; else echo "{$year}是平年"; } }else{ echo '您输入的不是整数'; } }else{ echo '您输入的不是数字'; } } } ?> <form method="post" action=""> 请输入年份: <input type="text" name="year"> <br /> <input type="submit" name="button" value="判断闰年"> </form> </body>运行结果小结:1、$_POST是一个变量,用来保存post提交的数据2、action=''表示将数据提到本页面3、is_numeric()判断变量是否是数字或字符串数字4、is_int()判断变量是否是整型5、if、else后面如果只是一句代码,大括号可以省略例题二:判断成绩(练习多分支)目标:输入语文和数学,判断等级代码实现<body> <?php if(isset($_POST['button'])){ //点击了提交按钮 $ch=$_POST['ch']; //获取语文成绩 $math=$_POST['math']; //获取数学成绩 if($ch=='' || !is_numeric($ch) || $ch<0 || $ch>100){ echo '语文成绩必须在0-100之间'; } elseif($math=='' || !is_numeric($math) || !($math>=0 && $math<=100)){ echo '数学成绩必须在0-100之间'; }else{ $avg=($ch+$math)/2; //求平均值 echo "您的平均分是:{$avg}<br>"; if($avg>=90) echo 'A'; elseif($avg>=80) echo 'B'; elseif($avg>=70) echo 'C'; elseif($avg>=60) echo 'D'; else echo 'E'; } } ?> <form method="post" action=""> 语文: <input type="text" name="ch"> <br /> 数学: <input type="text" name="math"> <br /> <input type="submit" name="button" value="判断成绩"> </form> </body>运行结果例题三:更改颜色(switch-case)目标:将文字的颜色改成选择的颜色<body> <?php if(isset($_POST['button'])) { switch($_POST['color']){ case '1': $color='#FF0000'; //红色 break; case '2': $color='#009900'; // 绿色 break; case '3': $color='#0000FF'; //蓝色 break; default: $color='#000000'; //黑色 } echo <<<str <script type="text/javascript"> window.onload=function(){ document.getElementById('shi').style.color='$color'; } </script> str; } ?> <div id="shi"> 锄禾日当午, <br /> 汗滴禾下土。 <br /> 谁知盘中餐, <br /> 粒粒皆辛苦。 <br /> </div> <form method="post" action=""> <select name="color"> <option value="0">请选择颜色</option> <option value="1">红色</option> <option value="2">绿色</option> <option value="3">蓝色</option> </select> <input type="submit" name="button" value="更改颜色"> </form> </body>运行结果
2022年10月11日
40 阅读
0 评论
1 点赞
2022-10-11
PHP基础(1)
php是一门语言,用来做业务逻辑
2022年10月11日
10 阅读
0 评论
1 点赞
1
2
3