• 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
没有结果
查看所有结果

PHP 语法(三)判断语句、 包含文件、 循环语句、 运算符

Mr.Lee 由 Mr.Lee
2018年5月18日
在 PHP, PHP基本语法
0
PHP 核心编程(一)文件上传、 表单传值、 验证文件类型
0
分享
0
浏览

PHP语法(三)

运算符

算术运算符

一元运算符

二元运算符

–

+

++

–

—

*

/

%

脚下留心:

  1. PHP中的“+”只能做数字运行,不能做字符串运算。
  2. ++和–要注意前置和后置的问题


比较运算符(关系运算符)

运算符

描述

>

大于

>=

大于等于

<

小于

<=

小于等于

==

等于 *只要能转成相同的值就是相等

===

全等于 *不但值相等,数据类型也要相等

!=或<>

不等于

!==

不全等

注意:比较运算符的运算结果是布尔型的

不等于

逻辑运算符

逻辑运算符是用来连接比较运算符的。

运算符

描述

&&或and

与(并且)

||或or

或(或者)

!

非(取反)

练习

true && true true

true && false false

false && true false

false && false false

true || true true

true || false true

false || true true

false || false false

!true false

!false true

例题

赋值运算符

运算符

描述

=

赋值

+=

a+=b a=a+b

-=

*=

/=

%=

总结 := 赋值 == 等于 === 全等

字符串连接符(.)

错误控制运算符(错误抑制符 @)

@用来屏蔽表达式错误,只对表达式有效。

三元运算符(?:)

语法:表达式?值1:值2

如果表达式为真,返回值1,否则返回值2

位运算符(了解)

运算符

描述

按位与(&)

两个相同的位都是1,结果才是1,有一位是0结果就是0

按位或(|)

两个位只要有一个是1结果就是1

按位异或(^)

两个位不同为1,相同位0

按位非(~)

按位取反

位左移(<<)

位向左移动

位右移(>>)

位向右移动

例题

运算符的优先级

  1. 第一步:小括号的优先级最高
  2. 第二步:先乘除后加减
  3. 第三步:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

$a=5;

$b=6;

$a>$b && ($a+$b)>$b*2 || !($a==$b)

=false && false || true

=true

两个常用于判读变量的函数

在处理一个没有定义的变量的时候回报错

我们在使用变量之前,向判读一下变量,判读变量的函数有两个

函数

说明

isset()

检测变量是否设置,并且设置的值不是null

empty()

检查变量是否为空,只要能转成 false的都为空。

例题:


流程控制的三大基本结构

  1. 顺序结构
  2. 判断
  3. 循环

判断语句

语法结构

  1. 单分支

if(条件){

}

  1. 双分支

if(条件){

}else{

}

  1. 多分支

if(条件){

}

elseif(条件){

}

elseif(条件){

}

else{

}

注意:多分支else和if之间是没有空格的。

  1. 多路选择

Switch(表达式){

case 常量:

[break];

case 常量:

[break];

default

}

例题:判断闰年(双分支)

  1. empty():如果$_POST为空表示没有post提交,不为空表示表达有post提交
  2. trim():去除字符串两边的空格
  3. is_numeric():判断变量是否是数字或数字字符串
  4. $year+=0;将$year转成数字类型
  5. is_int():判断变量是否是整型

<?php

if(!empty($_POST)) { //数组不为空说明点击了提交按钮

$year=trim($_POST[‘year’]); //获取年份,trim()用来去字符串两边的空格

if($year==”){

echo ‘您没有输入’;

}else{

if(!is_numeric($year)){

echo ‘您输入的不是数字’;

}else{

$year+=0; //将$year转成数字类型

if(is_int($year)){ //is_int()检查变量是否是整型

if($year<1)

echo ‘您输入的年份必须正整数’;

else {

/**

*润年的条件

*1、能被4整除,但是不能被100整除

*2、能被400整除的年份

*/

if($year%4==0 && $year%100!=0 || $year%400==0)

echo “{$year}是闰年”;

else

echo “{$year}是平年”;

}

}else{

echo ‘您输入的年份不是整数’;

}

}

}

}

?>

<form method=”post” action=””>

请输入年份: <input type=”text” name=”year”> <br />

<input type=”submit” name=”button” value=”判读闰年”>

</form>

例题:判断成绩(多分支)

<?php

if(!empty($_POST)) {

$ch=trim($_POST[‘ch’]); //获取语文成绩

$math=trim($_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 ‘孩子,你是我的骄傲’;

elseif($avg>=80)

echo ‘好样的,宝贝’;

elseif($avg>=70)

echo ‘您离优秀不远了’;

elseif($avg>=60)

echo ‘您还是有潜力的’;

else

echo ‘看来你不努力是不行了’;

}

}

?>

<form method=”post” action=””>

语文: <input type=”text” name=”ch”> <br />

数学: <input type=”text” name=”math”> <br />

<input type=”submit” name=”button” value=”提交”>

</form>

例题:switch-case

<div id=”shi” class=””>

锄禾日当午,<br>

汗滴禾下土。<br>

谁知盘中餐,<br>

粒粒皆辛苦。

</div>

<form method=”post” action=””>

<select name=”color”>

<option value=””>—请选择颜色—</option>

<option value=”1″>红色</option>

<option value=”2″>绿色</option>

<option value=”3″>蓝色</option>

</select>

<input type=”submit” name=”button” value=”确定”>

</form>

<?php

if(!empty($_POST)) {

$color=$_POST[‘color’];

switch($color) {

case 1:

$color=’#FF0000′;

break;

case 2:

$color=’#009900′;

break;

case 3:

$color=’#0000FF’;

break;

default:

$color=’#000000′;

}

/*

echo ‘<script type=”text/javascript”>’;

echo “shi.style.color='{$color}'”;

echo ‘</script>’;

*/

//换一种写法

?>

<script type=”text/javascript”>

shi.style.color='<?php echo $color?>’;

</script>

<?php

}

?>

注意如下两种写法

替代语法

左大括号变冒号(:),右大括号变endXXX

单分支

if(条件):

endif;

双分支

if(条件):

//代码1

else:

//代码2

endif;

多分支

if(条件):

//代码1

elseif(条件):

//代码2

else:

//代码3

endif;

switch-case

switch(表达式):

case :

break;

endswitch;

else if和elseif的区别

elseif是多分支;else if是嵌套if语句

else if等价于

else{

if(){

}

}

验证一下


循环语句

循环的分类

  1. for
  2. while
  3. do-while
  4. foreach

语法

  1. for循环

for(初始值;条件;增量){

//循环体

}

  1. for循环的替代语法

for(初始值;条件;增量):

//循环体

endfor;

  1. while循环

while(条件){

//循环体

}

  1. While循环的替代语法

While(条件):

Endwhile;

do-while循环

do

{

//循环体

}while(条件)

注意:判断和循环体中如果有一句代码,大括号是可以省略的。

循环的思考

  1. 在一个循环了n次的循环中,初始值、条件、增量各执行了几次

答:初始值1次,条件n+1次,增量n次

  1. for($i=1;$i!=5;$i++)循环了几次?

答:循环4次

  1. 循环执行完毕后,$i的变量是否存在?

答:存在

例题:三种循环实现从1加到任意数

<?php

if(isset($_POST[‘button’])) {

$num=$_POST[‘num’];

//for循环实现

$sum=0;

for($i=1; $i<=$num; $i++) {

$sum+=$i;

}

echo “for循环实现结果是:{$sum}<br>”;

//while循环

$sum=0;$i=1;

while($i<=$num) {

$sum+=$i++;

}

echo “while循环实现结果是:{$sum}<br>”;

//do-while循环

$sum=0;$i=1;

do

{

$sum+=$i++;

}while($i<=$num);

echo “do-while循环实现结果是:{$sum}<br>”;

}

?>

<form method=”post” action=””>

请输入一个数: <input type=”text” name=”num”> <br />

<input type=”submit” name=”button” value=”提交”>

</form>

例题:翻转数组

  1. 给数组添加元素
  2. 两个变量调换
  3. for循环中初始值,条件,增量的部分可以放多个表达式

面试题:不通过第三个变量如何实现两个变量的交换?

foreach循环

foreach循环用来遍历数组

语法:

//语法一

foreach(数组 as 值){

}

//语法二

foreach(数组 as 键=>值){

}

//foreach也支持替换语法

foreach(数组 as 值):

endforeach;

例题

例题:

跳转语句

  1. break:中断所有循环
  2. continue:跳出当前循环进入下一个循环

注意:

  1. break和continue默认中断1重循环。
  2. 如果一个循环只循环一次,break和continue的结果是一样的

  1. switch的本质是循环了一次的循环

例题

包含文件

相同的代码出现在多个页面中,不便于维护,我们将相同的代码分离开来,在需要用到的页面中引入包含文件即可。

解决:我们将相同的代码分离开来,在需要用到的页面中引入包含文件即可

包含的语法

  1. include ‘地址’:可以包含多次,如果有错,报警告错误,继续执行
  2. require ‘地址’:可以包含多次,如果有错,报致命错误,终止执行。
  3. include_once ‘地址’:只能包含一次,区别和include一样
  4. require_once ‘地址’:只能包含一次,区别和require一样


如果HTML包含文件中有PHP代码,包含文件的PHP代码是执行的。 因为包含文件就相当于拷贝粘贴到PHP页面中了。

作业

  1. PHP实现计算器

  1. 九九乘法表
标签: 判断语句包含文件循环语句运算符
上一篇文章

PHP 语法(四)二分法、 传参、 全局变量、 函数、 匿名函数、 变量作用域、 变量生命周期、 终止脚本、 递归、 静态变量

下一篇文章

PHP 语法(二)PHP 伪类型、 原码、 反码、 变量类型、 数组、 类型转换、 补码、 资源类型

下一篇文章
PHP 核心编程(二)Mysql 扩展、 数据库连接、 笑话增删改查

PHP 语法(二)PHP 伪类型、 原码、 反码、 变量类型、 数组、 类型转换、 补码、 资源类型

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Search

没有结果
查看所有结果

About Me

个人随笔

Winston Lee

Programmer

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Winston Lee

About Me

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Categories

  • AJAX
  • BootStrap
  • CodeIgniter
  • CSS
  • DedeCMS
  • GIT
  • HTML
  • Javascript
  • Jquery
  • Laravel
  • Laravel在线教育平台
  • Linux
  • Memcache
  • MongoDB
  • MVC
  • Mysql
  • Nginx
  • Node
  • PDO
  • PHP
  • PHP7
  • PHP基本语法
  • PHP核心编程
  • Redis
  • Smarty
  • Socket
  • SVN
  • Swoole
  • TP3.2
  • TP3.2商城
  • TP5.0
  • TP5.0商城
  • XML
  • Yaf
  • Yii
  • Yii手机直播
  • 二次开发
  • 优化方案
  • 前端技术
  • 前端框架
  • 后台框架
  • 基本操作
  • 微信公众号
  • 数据库
  • 未分类
  • 混合APP
  • 源码Blog项目
  • 版本控制
  • 环境搭建
  • 移动端开发
  • 网站优化
  • 资料
  • 面向对象
  • 面向对象编程
  • 页面静态化

Tags

DOM Json RBAC 事件 传参 函数 分页 判断语句 匿名函数 变量 图片上传 存储过程 安装 对象 封装 属性 接口 控制器 数据库操作 数据类型 数据表 数组 文件上传 无刷新分页 权限 标签 模型 正则 流程控制 目录结构 算法 类 索引 继承 缩略图 表关系 视图 路由 运算符 选择器 递归 配置 错误处理 页面静态化 验证码
  • 首页
  • 前端
  • 前端框架
  • PHP
  • 数据库
  • 优化
  • 后台框架与实战
  • 移动开发
  • 二次开发
  • Linux
  • 版本控制
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3

没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3