PHP学习笔记 - 入门篇(5)

时间:2023-02-18 08:15:47

PHP学习笔记 - 入门篇(5)

语言结构语句

顺序结构

eg:

<?php
$shoesPrice = 49; //鞋子单价
$shoesNum = 1; //鞋子数量
$shoesMoney = $shoesPrice * $shoesNum;
$shirtPrice = 99; //衬衣单价
$shirtNum = 2; //衬衣数量
$shirtMoney = $shirtPrice * $shirtNum;
$orderMoney = $shoesMoney + $shirtMoney;
echo $orderMoney ;
?>

输出:

247

条件结构之if…else…

<?php
if(条件){
//分配服务器干的任务A
}else{
//分配服务器干的任务B
}
?>

通过条件判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则执行任务B。

<?php
date_default_timezone_set('Asia/ShangHai');
$today = date('m-d',time());//获取当天日期
$birthday = "02-14";//生日
$money = 238;//消费金额
$discount = 0.8;//八折优惠
if($today == $birthday) { $money = $money * $discount;
}else{ $money = $money * 1;
} echo $money;
?>

条件结构之if…else if…

PHP中的“if…else if…”语法,如下:

<?php
if(条件一){
//分配服务器干的任务A
}else if(条件二){
//分配服务器干的任务B
}
?>

通过条件一判断,若返回值为布尔值为TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B。服务器会继续往下执行其他任务。

eg:

<?php
$totalMoney = 0;//总工资
$basicMoney = 2000;//基本工资
$sex = "男"; if($sex == "男"){
$totalMoney = $basicMoney + 0;// 男的没奖金
}else if($sex == "女"){
$totalMoney = $basicMoney + 300;// 女的有奖金300元
}
echo $totalMoney;
?>

条件结构之if…else if…else…

PHP中的“if…else if…else…”语法,如下

<?php
if(条件一){
//分配服务器干的任务A
}else if(条件二){
//分配服务器干的任务B
}else{
//分配服务器干的任务C
}
?>

通过条件一判断,若返回值为布尔值TRUE,则执行任务A,若返回值为FALSE,则判断条件二,若返回值为布尔值TRUE,则执行任务B,否则既不执行任务A,也不执行任务B,执行任务C。

eg:

<?php
date_default_timezone_set('asia/shanghai');
$week = date("w");//获取当天星期几
$info = "";//提示信息
if ($week == 1) {
$info = "上午有课";
}else if($week == 3){
$info = "下午有课";
}else{
$info = "今天没课";
}
echo $info; //输出提示信息
?>

输出:

今天没课

条件结构之switch…case…

PHP中的“switch...case...”语法,如下:

<?php
switch (条件)
{
case 条件值一:
//任务一
break;
case 条件值二:
//任务二
break;
default:
//默认任务
}
?>

首先判断条件,若条件的返回值为条件值一,则执行任务一,若条件返回的值为条件值二,则执行任务二,若条件的返回值既不是条件值一也不是条件值二,则执行默认任务。break的作用是结束switch(后面会有专门举例说明),使用 switch 语句可以避免冗长的 “if..else if..else”代码块。

eg:

<?php
$num = rand(1,50);//获取1至50的随机数
$info = "";//提示信息
switch($num) {
case 1:
$info = "恭喜你!中了一等奖!";
break;
case 2:
$info = "恭喜你!中了二等奖!";
break;
case 3:
$info = "恭喜你!中了三等奖!";
break;
default:
$info = "很遗憾!你没有中奖!";
}
echo $info; //输出是否中奖
?>

条件结构之switch…case…中的break

break的作用是阻止代码进入下一个case 中继续执行。

eg:

<?php
//A例子
$num = 2;
$sum = 10;
switch($num){
case 1:
$sum = $sum + 10;
break;
case 2:
$sum = $sum + 10;
break;
case 3:
$sum = $sum + 10;
break;
default:
$sum = $sum + 10;
}
echo "A例子的值是:".$sum."<br />";
//B例子
$num = 2;
$sum = 10;
switch($num){
case 1:
$sum = $sum + 10;
case 2:
$sum = $sum + 10;
case 3:
$sum = $sum + 10;
default:
$sum = $sum + 10;
}
echo "B例子的值是:".$sum."<br />";
?>

PHP中循环结构之while循环语句

在PHP中,while循环语句如下:

<?php
while(条件){
//执行任务
}
?>

首先判断某个条件是否符合(条件返回值是否为TRUE),若符合则执行任务,执行完毕任务,再判断条件是否满足要求,符合则重复执行此任务,否则结束任务。

eg:

<?php
$sum = 12;//小宠物当前的饥饿程度
echo "我饿啦:-(";
echo "<br />";
while($sum<100){//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食
$num = rand(1,20);//随机数,模拟喂食小宠物的小面包
$sum = $sum + $num; //小宠物吃小面包
echo "我还没吃饱呢!";
echo "<br />";
}
echo "终于吃饱啦^_^";
?>

输出:

我饿啦:-(
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
我还没吃饱呢!
终于吃饱啦^_^

PHP中循环结构之do while循环语句

在PHP中循环语句还有另一种:do...while循环语句语法如下:

<?php
do{
//执行任务
}while(条件)
?>

首先执行任务(上一节的while语句是先判断条件是否成立,再执行任务),执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE),若符合则再次执行任务,执行完毕任务,继续判定条件。

eg:

<?php
$i = 1 ; //从第1圈开始跑
do{ //跑10圈
echo "在跑第".$i."圈。";
$i++;
}while($i<=10);
?>

输出:

在跑第1圈。在跑第2圈。在跑第3圈。在跑第4圈。在跑第5圈。在跑第6圈。在跑第7圈。在跑第8圈。在跑第9圈。在跑第10圈。

PHP中循环结构之while与do…while语句的区别

while与do…while循环语句的区别是,while先判断条件是否成立,后执行循环,do...while先执行一次任务,再判断是否继续执行循环,也就是说do...while至少会执行一次任务。当条件为FALSE时,while中的任务会一次也不执行,do...while中的任务会执行1次。

eg:

<?php
//A例子
$num = 2;
$sum = 10;
while($num>3){
$sum = $sum + 10;
}
echo "A例子的结果:".$sum."<br />";
//B例子
$num = 2;
$sum = 10;
do{
$sum = $sum + 10;
}while($num>3);
echo "B例子的结果:".$sum."<br />";
?>

输出:

A例子的结果:10
B例子的结果:20

PHP中循环结构之do…while语句的运用优势举例

while和do...while可以根据具体情况选用。假设有一种棋类游戏,首先掷骰子,若不为6,前进骰子的点数的步长;若为6,前进骰子的点数的步长,并可以再掷一次。

<?php
//while例子
$sum = 0;
$num = rand(1,6); //获取1至6的随机数,模拟掷骰子
$sum = $sum + $num;//前进步长
while($num==6){
$num = rand(1,6);//获取1至6的随机数,模拟掷骰子
$sum = $sum + $num;//前进步长
};
echo "while例子执行完毕,前进:".$sum ."<br />";
//do...while例子
$sum = 0;
do{
$num = rand(1,6);//获取1至6的随机数,模拟掷骰子
$sum = $sum + $num;//前进步长
}while($num==6);
echo "do...while例子执行完毕,前进:".$sum ."<br />";
?>
while例子执行完毕,前进:2
do...while例子执行完毕,前进:2

PHP中循环结构之for循环语句

在PHP中还有一种循环语句,for循环语句结构如下:

<?php
for(初始化;循环条件;递增项){
//执行任务
}
?>

for 语句中,“初始化”在循环开始前无条件求值一次,“循环条件”在每次循环开始前求值。如果值为 TRUE,则继续循环,执行循环体语句(执行任务)。如果值为 FALSE,则终止循环。“递增项”在每次循环之后被求值(执行)。其常用于循环执行代码块指定的次数。

eg:

<?php
//for语句写法
for($i = 1,$sum = 0;$i<=100;$i++){
$sum = $sum + $i; // 累加求和
}
echo "for语句的运行结果:".$sum."<br />" ; //while语句写法
$i = 1 ; // 从1开始累加
$sum = 0; //初始化和为0
while($i<=100){ //判断是否小于100
$sum = $sum + $i; // 累加求和
$i++; //递增1
}
echo "while语句的运行结果:".$sum."<br />" ;
?>
for语句的运行结果:5050
while语句的运行结果:5050

PHP中循环结构之foreach循环语句(任务一)

在PHP中foreach循环语句,常用于遍历数组,一般有两种使用方式:不取下标、取下标。

(1)只取值,不取下标

<?php
foreach (数组 as 值){
//执行的任务
}
?>

(2)同时取下标和值

<?php
foreach (数组 as 下标 => 值){
//执行的任务
}
?>

eg:

<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储 //使用循环结构遍历数组,获取学号和姓名
foreach($students as $v)
{
echo $v;//输出(打印)姓名
echo "<br />";
}
?>

输出:

令狐冲
林平之
曲洋
任盈盈
向问天
任我行
冲虚
方正
岳不群
宁中则

eg:

<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储 //使用循环结构遍历数组,获取学号和姓名
foreach($students as $key => $v)
{
echo $key.":".$v;//输出(打印)学号:姓名
echo "<br />";
}
?>

输出:

2010:令狐冲
2011:林平之
2012:曲洋
2013:任盈盈
2014:向问天
2015:任我行
2016:冲虚
2017:方正
2018:岳不群
2019:宁中则

PHP中结构嵌套之条件嵌套

假设在发3月工资的时候,不仅判定性别,还要判定男性是否有房,没有房,可以发放住房补贴,对于女性,判定是否怀孕,怀孕还有怀孕补贴。

eg:

<?php
$totalMoney = 0;//总工资
$basicMoney = 300;//基本工资
$sex = "男";
$noHouse = TRUE; //是否有房
$houseMoney = 150;//住房补贴
$isPregnancy = TRUE; //是否怀孕
$pregnancyMoney = 100;//怀孕补贴
if($sex == "男")
{
$totalMoney = $basicMoney + 0;// 男的没奖金
if($noHouse)
{
$totalMoney = $totalMoney + $houseMoney;
}
}
else if($sex == "女")
{
$totalMoney = $basicMoney + 300;// 女的有奖金300元
if($isPregnancy)
{
$totalMoney = $totalMoney + $pregnancyMoney;
}
}
echo $totalMoney;
?>

输出:

450

PHP中结构嵌套之循环嵌套

eg:

<?php
$students = array(
'2010'=>array('令狐冲',"59"),
'2011'=>array('林平之',"44"),
'2012'=>array('曲洋',"89"),
'2013'=>array('任盈盈',"92"),
'2014'=>array('向问天',"93"),
'2015'=>array('任我行',"87"),
'2016'=>array('冲虚',"58"),
'2017'=>array('方正',"74"),
'2018'=>array('岳不群',"91"),
'2019'=>array('宁中则',"90"),
);//10个学生的学号、姓名、分数,用数组存储 foreach($students as $key => $val)
{ //使用循环结构遍历数组,获取学号
echo $key; //输出学号
echo ":";
//循环输出姓名和分数
foreach($val as $v)
{
echo $v;
}
echo "<br />";
}
?>

输出:

2010:令狐冲59
2011:林平之44
2012:曲洋89
2013:任盈盈92
2014:向问天93
2015:任我行87
2016:冲虚58
2017:方正74
2018:岳不群91
2019:宁中则90

PHP中结构嵌套之循环结构与条件结构嵌套

eg:

<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储
$query = '2014';
//使用循环结构遍历数组,获取学号和姓名
foreach($students as $key => $v)
{
//使用条件结构,判断是否为该学号
if($key == $query)
{
echo $v;//输出(打印)姓名
break;//结束循环(跳出循环)
}
}
?>

输出:

向问天

PHP学习笔记 - 入门篇(5)的更多相关文章

  1. PHP学习笔记 - 入门篇(4)

    PHP学习笔记 - 入门篇(4) 什么是运算符 PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. PHP中的算术运算符 算术运算符主要 ...

  2. PHP学习笔记 - 入门篇(3)

    PHP学习笔记 - 入门篇(3) 常量 什么是常量 什么是常量?常量可以理解为值不变的量(如圆周率):或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量 ...

  3. PHP学习笔记--入门篇

    PHP学习笔记--入门篇 一.Echo语句 1.格式 echo是PHP中的输出语句,可以把字符串输出(字符串用双引号括起来) 如下代码 <?php echo "Hello world! ...

  4. PHP学习笔记 - 入门篇(2)

    PHP入门篇(2) 什么是变量 变量是用于存储值的容器,如下 $var = @"6666" 如何定义变量 定义变量就是像服务器的内存申请空间,用来存储数据,eg: <?php ...

  5. GeneXus学习笔记——入门篇

    使用GeneXus做开发做了有一段时间了 却发现一个问题(O_O)?就是除了相关的Wiki外 网上其他地方的相关资料都很少 于是乎我就想在这记录一些东西 来帮助以后会用到的人(°ー°") 那 ...

  6. JavaScript学习笔记 - 入门篇(1)- 准备

    为什么学习JavaScript 一.你知道,为什么JavaScript非常值得我们学习吗? 所有主流浏览器都支持JavaScript. 目前,全世界大部分网页都使用JavaScript. 它可以让网页 ...

  7. android学习笔记&lpar;入门篇&rpar;

    +号只是当你第一次定义一个资源ID的时候需要, 告诉SDK此资源ID需要被创建出来 对于所有的View默认的权重是0,如果你只设置了一个View的权重大于0,那么这个View将占据除去别的View本身 ...

  8. Android攻城狮学习笔记—入门篇三

    第十章 CheckBox 与其他控件类似 有自己的监听方法 实现监听 并定义被选中或取消后的操作 第十一章 RadioGroup和RadioButton RadioGroup是RadioButton的 ...

  9. Android攻城狮学习笔记—入门篇二

    第七章  跑马灯 activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/an ...

随机推荐

  1. debug阶段工作期站立会议1

    组名:天天向上 组长:王森 组员:张政.张金生.林莉.胡丽娜 代码地址:HTTPS:https://git.coding.net/jx8zjs/llk.git SSH:git@git.coding.n ...

  2. MySql 去重且指定某字段在前的排序方法

    今天遇到一个棘手的数据查找并去重的问题: 情况: 1.取出数据库中的数据: 2.同一字段A,不同情况<值,如A值为:a1,a2>下取出的其他数据可能相同: 3.将2情况下的重复数据< ...

  3. Light OJ 1114 Easily Readable 字典树

    题目来源:Light OJ 1114 Easily Readable 题意:求一个句子有多少种组成方案 仅仅要满足每一个单词的首尾字符一样 中间顺序能够变化 思路:每一个单词除了首尾 中间的字符排序 ...

  4. QQ联系客服

    $('.side').bind('mouseenter mouseleave',function(e){ if(e.type=="mouseenter"){ if(!$(this) ...

  5. xml文档格式学习笔记

    xml入门经典 (pdf书籍) https://www.cnblogs.com/zhaopengcheng/p/6848802.html

  6. P124黎曼可积性刻画 的两个备注

    1.这里为什么是开集?   2.请问为什么说了是开集马上就说是有界可测函数? 开集为可测集

  7. TODO 软件测试68题

    白盒和黑盒的区别,你是怎么运用的?√  都是在debug的时候用的.没有实践过真正的白盒. 你是如何做测试分析?√  主要从功能的实现和性能问题上入手,功能的话以需求和实际使用的流程来分析,性能的话以 ...

  8. 30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)

    去年八月时要做一个OA系统为了后台界面而烦恼,后来写了一篇博客(<后台管理UI的选择>)介绍了选择过程与常用后台UI,令我想不到的时竟然有许多开发者与我一样都为这个事情而花费不少时间,最后 ...

  9. 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 Week5 20165233

    Exp3 免杀原理与实践 实验内容 一.基础问题回答 1.杀软是如何检测出恶意代码的? 基于特征码的检测:通过与自己软件中病毒的特征库比对来检测的. 启发式的软件检测:就是根据些片面特征去推断.通常是 ...

  10. hibernate原生sql封装,报错信息:could not find setter for rownum&lowbar;

    今天用hibernate的时候,用了一个原生态sql做了一个分页查询,结果就报错了... 找到解决方法了:http://shmily2038.iteye.com/blog/1704963