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

语言结构语句

顺序结构

eg:

  1. <?php
  2. $shoesPrice = 49; //鞋子单价
  3. $shoesNum = 1; //鞋子数量
  4. $shoesMoney = $shoesPrice * $shoesNum;
  5. $shirtPrice = 99; //衬衣单价
  6. $shirtNum = 2; //衬衣数量
  7. $shirtMoney = $shirtPrice * $shirtNum;
  8. $orderMoney = $shoesMoney + $shirtMoney;
  9. echo $orderMoney ;
  10. ?>

输出:

  1. 247

条件结构之if…else…

  1. <?php
  2. if(条件){
  3. //分配服务器干的任务A
  4. }else{
  5. //分配服务器干的任务B
  6. }
  7. ?>

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

  1. <?php
  2. date_default_timezone_set('Asia/ShangHai');
  3. $today = date('m-d',time());//获取当天日期
  4. $birthday = "02-14";//生日
  5. $money = 238;//消费金额
  6. $discount = 0.8;//八折优惠
  7. if($today == $birthday) {
  8. $money = $money * $discount;
  9. }else{
  10. $money = $money * 1;
  11. }
  12. echo $money;
  13. ?>

条件结构之if…else if…

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

  1. <?php
  2. if(条件一){
  3. //分配服务器干的任务A
  4. }else if(条件二){
  5. //分配服务器干的任务B
  6. }
  7. ?>

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

eg:

  1. <?php
  2. $totalMoney = 0;//总工资
  3. $basicMoney = 2000;//基本工资
  4. $sex = "男";
  5. if($sex == "男"){
  6. $totalMoney = $basicMoney + 0;// 男的没奖金
  7. }else if($sex == "女"){
  8. $totalMoney = $basicMoney + 300;// 女的有奖金300元
  9. }
  10. echo $totalMoney;
  11. ?>

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

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

  1. <?php
  2. if(条件一){
  3. //分配服务器干的任务A
  4. }else if(条件二){
  5. //分配服务器干的任务B
  6. }else{
  7. //分配服务器干的任务C
  8. }
  9. ?>

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

eg:

  1. <?php
  2. date_default_timezone_set('asia/shanghai');
  3. $week = date("w");//获取当天星期几
  4. $info = "";//提示信息
  5. if ($week == 1) {
  6. $info = "上午有课";
  7. }else if($week == 3){
  8. $info = "下午有课";
  9. }else{
  10. $info = "今天没课";
  11. }
  12. echo $info; //输出提示信息
  13. ?>

输出:

  1. 今天没课

条件结构之switch…case…

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

  1. <?php
  2. switch (条件)
  3. {
  4. case 条件值一:
  5. //任务一
  6. break;
  7. case 条件值二:
  8. //任务二
  9. break;
  10. default:
  11. //默认任务
  12. }
  13. ?>

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

eg:

  1. <?php
  2. $num = rand(1,50);//获取1至50的随机数
  3. $info = "";//提示信息
  4. switch($num) {
  5. case 1:
  6. $info = "恭喜你!中了一等奖!";
  7. break;
  8. case 2:
  9. $info = "恭喜你!中了二等奖!";
  10. break;
  11. case 3:
  12. $info = "恭喜你!中了三等奖!";
  13. break;
  14. default:
  15. $info = "很遗憾!你没有中奖!";
  16. }
  17. echo $info; //输出是否中奖
  18. ?>

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

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

eg:

  1. <?php
  2. //A例子
  3. $num = 2;
  4. $sum = 10;
  5. switch($num){
  6. case 1:
  7. $sum = $sum + 10;
  8. break;
  9. case 2:
  10. $sum = $sum + 10;
  11. break;
  12. case 3:
  13. $sum = $sum + 10;
  14. break;
  15. default:
  16. $sum = $sum + 10;
  17. }
  18. echo "A例子的值是:".$sum."<br />";
  19. //B例子
  20. $num = 2;
  21. $sum = 10;
  22. switch($num){
  23. case 1:
  24. $sum = $sum + 10;
  25. case 2:
  26. $sum = $sum + 10;
  27. case 3:
  28. $sum = $sum + 10;
  29. default:
  30. $sum = $sum + 10;
  31. }
  32. echo "B例子的值是:".$sum."<br />";
  33. ?>

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

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

  1. <?php
  2. while(条件){
  3. //执行任务
  4. }
  5. ?>

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

eg:

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

输出:

  1. 我饿啦:-(
  2. 我还没吃饱呢!
  3. 我还没吃饱呢!
  4. 我还没吃饱呢!
  5. 我还没吃饱呢!
  6. 我还没吃饱呢!
  7. 我还没吃饱呢!
  8. 我还没吃饱呢!
  9. 我还没吃饱呢!
  10. 终于吃饱啦^_^

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

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

  1. <?php
  2. do{
  3. //执行任务
  4. }while(条件)
  5. ?>

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

eg:

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

输出:

  1. 在跑第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:

  1. <?php
  2. //A例子
  3. $num = 2;
  4. $sum = 10;
  5. while($num>3){
  6. $sum = $sum + 10;
  7. }
  8. echo "A例子的结果:".$sum."<br />";
  9. //B例子
  10. $num = 2;
  11. $sum = 10;
  12. do{
  13. $sum = $sum + 10;
  14. }while($num>3);
  15. echo "B例子的结果:".$sum."<br />";
  16. ?>

输出:

  1. A例子的结果:10
  2. B例子的结果:20

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

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

  1. <?php
  2. //while例子
  3. $sum = 0;
  4. $num = rand(1,6); //获取1至6的随机数,模拟掷骰子
  5. $sum = $sum + $num;//前进步长
  6. while($num==6){
  7. $num = rand(1,6);//获取1至6的随机数,模拟掷骰子
  8. $sum = $sum + $num;//前进步长
  9. };
  10. echo "while例子执行完毕,前进:".$sum ."<br />";
  11. //do...while例子
  12. $sum = 0;
  13. do{
  14. $num = rand(1,6);//获取1至6的随机数,模拟掷骰子
  15. $sum = $sum + $num;//前进步长
  16. }while($num==6);
  17. echo "do...while例子执行完毕,前进:".$sum ."<br />";
  18. ?>
  1. while例子执行完毕,前进:2
  2. do...while例子执行完毕,前进:2

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

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

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

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

eg:

  1. <?php
  2. //for语句写法
  3. for($i = 1,$sum = 0;$i<=100;$i++){
  4. $sum = $sum + $i; // 累加求和
  5. }
  6. echo "for语句的运行结果:".$sum."<br />" ;
  7. //while语句写法
  8. $i = 1 ; // 从1开始累加
  9. $sum = 0; //初始化和为0
  10. while($i<=100){ //判断是否小于100
  11. $sum = $sum + $i; // 累加求和
  12. $i++; //递增1
  13. }
  14. echo "while语句的运行结果:".$sum."<br />" ;
  15. ?>
  1. for语句的运行结果:5050
  2. while语句的运行结果:5050

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

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

(1)只取值,不取下标

  1. <?php
  2. foreach (数组 as 值){
  3. //执行的任务
  4. }
  5. ?>

(2)同时取下标和值

  1. <?php
  2. foreach (数组 as 下标 => 值){
  3. //执行的任务
  4. }
  5. ?>

eg:

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

输出:

  1. 令狐冲
  2. 林平之
  3. 曲洋
  4. 任盈盈
  5. 向问天
  6. 任我行
  7. 冲虚
  8. 方正
  9. 岳不群
  10. 宁中则

eg:

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

输出:

  1. 2010:令狐冲
  2. 2011:林平之
  3. 2012:曲洋
  4. 2013:任盈盈
  5. 2014:向问天
  6. 2015:任我行
  7. 2016:冲虚
  8. 2017:方正
  9. 2018:岳不群
  10. 2019:宁中则

PHP中结构嵌套之条件嵌套

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

eg:

  1. <?php
  2. $totalMoney = 0;//总工资
  3. $basicMoney = 300;//基本工资
  4. $sex = "男";
  5. $noHouse = TRUE; //是否有房
  6. $houseMoney = 150;//住房补贴
  7. $isPregnancy = TRUE; //是否怀孕
  8. $pregnancyMoney = 100;//怀孕补贴
  9. if($sex == "男")
  10. {
  11. $totalMoney = $basicMoney + 0;// 男的没奖金
  12. if($noHouse)
  13. {
  14. $totalMoney = $totalMoney + $houseMoney;
  15. }
  16. }
  17. else if($sex == "女")
  18. {
  19. $totalMoney = $basicMoney + 300;// 女的有奖金300元
  20. if($isPregnancy)
  21. {
  22. $totalMoney = $totalMoney + $pregnancyMoney;
  23. }
  24. }
  25. echo $totalMoney;
  26. ?>

输出:

  1. 450

PHP中结构嵌套之循环嵌套

eg:

  1. <?php
  2. $students = array(
  3. '2010'=>array('令狐冲',"59"),
  4. '2011'=>array('林平之',"44"),
  5. '2012'=>array('曲洋',"89"),
  6. '2013'=>array('任盈盈',"92"),
  7. '2014'=>array('向问天',"93"),
  8. '2015'=>array('任我行',"87"),
  9. '2016'=>array('冲虚',"58"),
  10. '2017'=>array('方正',"74"),
  11. '2018'=>array('岳不群',"91"),
  12. '2019'=>array('宁中则',"90"),
  13. );//10个学生的学号、姓名、分数,用数组存储
  14. foreach($students as $key => $val)
  15. { //使用循环结构遍历数组,获取学号
  16. echo $key; //输出学号
  17. echo ":";
  18. //循环输出姓名和分数
  19. foreach($val as $v)
  20. {
  21. echo $v;
  22. }
  23. echo "<br />";
  24. }
  25. ?>

输出:

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

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

eg:

  1. <?php
  2. $students = array(
  3. '2010'=>'令狐冲',
  4. '2011'=>'林平之',
  5. '2012'=>'曲洋',
  6. '2013'=>'任盈盈',
  7. '2014'=>'向问天',
  8. '2015'=>'任我行',
  9. '2016'=>'冲虚',
  10. '2017'=>'方正',
  11. '2018'=>'岳不群',
  12. '2019'=>'宁中则',
  13. );//10个学生的学号和姓名,用数组存储
  14. $query = '2014';
  15. //使用循环结构遍历数组,获取学号和姓名
  16. foreach($students as $key => $v)
  17. {
  18. //使用条件结构,判断是否为该学号
  19. if($key == $query)
  20. {
  21. echo $v;//输出(打印)姓名
  22. break;//结束循环(跳出循环)
  23. }
  24. }
  25. ?>

输出:

  1. 向问天

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学习笔记(入门篇)

    +号只是当你第一次定义一个资源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. 序列化对象C++对象的JSON序列化与反序列化探索

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 一:背景 作为一名C++开发人员,我始终很期待能够像C#与JAVA那样,可以省力的进行对象的序列化与反序列化,但到现在为止,还没有找 ...

  2. MyBatis之七:使用generator工具

    可以将mybatis理解成一种半自动化orm框架,通过注解或者配置xml映射文件来手写相关sql语句,不能像我之前介绍orm的文章那样全对象化操作数据库增删改查.其实你会发现,手写配置xml映射文件是 ...

  3. show processlist 命令详解

      如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的 MySQL 帐户运行的线程). mysql> show processlist; +—–+— ...

  4. [Jest] Test JavaScript with Jest

    Let's learn how to unit test your JavaScript with Jest, a JavaScript unit testing framework from Fac ...

  5. iOS开发——网络编程Swift篇&(四)异步Get方式

    异步Get方式 // MARK: - 异步Get方式 func asynchronousGet() { //创建NSURL对象 var url:NSURL! = NSURL(string: " ...

  6. O​r​a​c​l​e​1​1​g​ ​f​o​r​ ​R​e​d​H​a​t​6​.​4​安​装​手​册

    一. 检查 Oracle 11g 安装所依赖的软件包 检查包是否安装 # rpm -q 包名 包名: 1   ) binutils 2 ) compat-libstdc++   3) elfutils ...

  7. java_SSH整合1

    Domain: public class Department { private Long id; private Set<User> users = new HashSet<Us ...

  8. BFS-hdu-1226-超级密码

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1226 题目意思: 给一个N,给nn个jj进制的数字,问最小的不超过500位的由这些数字组成的jj进制 ...

  9. Spring 3.1 Environment Profiles--转载

    原文地址:http://gordondickens.com/wordpress/2012/06/12/spring-3-1-environment-profiles/ Profiles Spring ...

  10. BootStrap2学习日记7---表格

    基本表 代码: <div class="container"> <h1 class="page-header">基本表</h1&g ...