第3章 操作符与控制结构

学习要点:

1.字符串插入

2.操作符

3.控制结构

一.字符串插入

为了给开发人员处理字符串值提供最大的灵活性,PHP为字面插入和内容插入提供了一种方法。

双引号提供了最大的灵活性,原因是变量和转移序列都会得到相应的解析。

<?php

$userName = "吴祁";

echo "His name is $userName";

echo "<br />";

//中文会出现一些问题

echo "他的名字叫$userName,他19岁了,已经长大成人了!";

echo "<br />";

//可以采用字符串连接的方式解决

echo "他的名字叫".$userName.",他19岁了,已经长大成人了!"

//转义字符可以得到解析

echo "虽然他的QQ号有很多女生,\n但一个都不属于他";

?>

部分常用的转义字符

转义序列

描述

\n

换行符

\r

回车

\t

水平制表图

\\

反斜杠

\$

美元符

\"

双引号

单引号会按照声明的原样解释,解析字符串时,变量和转义序列都不会进行解析。

<?php

echo '吴祁的变量名为:$userName,转义字符\n在单引号中无效'

?>

二.操作符

操作符是用来对数组和变量进行某种操作运算的符号。

算术操作符

操作符

名称

示例

+

$a+$b

-

$a-$b

*

$a*$b

/

$a/$b

%

取余

$a%$b

复合赋值操作符

操作符

使用方法

等价于

+=

$a+=$b

$a=$a+$b

-=

$a-=$b

$a=$a-$b

*=

$a*=$b

$a=$a*$b

/=

$a/=$b

$a=$a/$b

%=

$a%=$b

$a=$a%$b

.=

$a.=$b

$a=$a.$b

前置递增递减和后置递增递减运算符:

$a=++$b;

$a=$b++;

$a=--$b;

$a=$b--;

比较运算符

操作符

名称

使用方法

= =

等于

$a= =$b

= = =

恒等

$a= = =$b

!=

不等

$a!=$b

!= =

不恒等

$a!= =$b

<>

不等

$a<>$b

<

小于

$a<$b

>

大于

$a>$b

<=

小于等于

$a<=$b

>=

大于等于

$a>=$b

注:恒等表示只有两边操作数相等并且数据类型也相当才返回true;

例如:0= ="0" 这个返回为true ,因为操作数相等

0= = ="0"  这个返回为false,因为数据类型不同

逻辑运算符

操作符

使用方法

使用方法

说明

!

!$b

如果$b是false,则返回true;否则相反

&&

$a&&$b

如果$a和$b都是true,则结果为true;否则为false

||

$a||$b

如果$a和$b中有一个为true或者都为true时,其结果为true;否则为false

and

$a and $b

与&&相同,但其优先级较低

or

$a or $b

与||相同,但其优先级较低

操作符"and"和"or"比&&和||的优先级要低。

三元操作符

Condition ? value if true : value if false

示例:($grade>=50 ? "Passed" : "Failed")

错误抑制操作符:

$a=@(57/0);

除数不能为0,会出错,所以加上@避免出现错误警告。

数组操作符

操作符

使用方法

使用方法

说明

+

联合

!$b

返回一个包含了$a和$b中所有元素的数组

= =

等价

$a&&$b

如果$a和$b具有相同的元素,返回true

= = =

恒等

$a||$b

如果$a和$b具有相同的元素以及相同的顺序,返回true

!=

非等价

$a and $b

如果$a和$b不是等价的,返回true

<>

非等价

如果$a和$b不是等价的,返回true

!= =

非恒等

$a or $b

如果$a和$b不是恒等的,返回true

操作符的优先级和结合性:

一般地说,操作符具有一组优先级,也就是执行他们的顺序。

操作符还具有结合性,也就是同一优先级的操作符的执行顺序。这种顺序通常有从左到右,从右到左或者不相关。

下面给出操作符优先级的表。最上面的操作符优先级最低,按着表的由上而下的顺序,优先级递增。

操作符优先级

结合性

操作符

Or

Xor

And

Print

= += -= *= /= .= %= &= |= ^= ~= <<= >>=

?:

||

&&

|

^

&

不相关

= =  != =  = = =  != =

不相关

<<= >>=

<< >>

+ - .

* / %

! ~ ++ -- (int)(double)(string)(array)(object) @

[]

不相关

New

不相关

()

为了避免优先级混乱,可以使用括号避开优先级。

三.控制结构

如果我们希望有效地相应用户的输入,代码就需要具有判断能力。能够让程序进行判断的结构称为条件。

if条件判断语句

if (条件判断){

//......

}

if (条件判断){

//....

}

else {

//....

}

if (条件判断) {

//...

}

elseif {

//...

}

elseif {

//....

}

else {

//....

}

switch语句

switch (变量) {

case "值1":

//...

break;

case "值2":

//...

break;

case "值N":

//...

break;

default:

//....

break;

}

while循环

while (条件) {

//....

}

for循环

for (初始值;条件;计数器) {

//....

}

除了for循环外,PHP还提供了foreach循环,它专门用于数组的使用。我们在数组中详细介绍它。

do while 循环

do {

//...

} while(条件);

如果希望停止一段代码的执行,根据所需要达到的效果不同,可以有3中方法实现。

第一种:break;  退出循环; 第二种是exit ;退出程序  第三种是continue;退出当前循环

if (条件)

{

break; //continue

}

PHP - 操作符与控制结构的更多相关文章

  1. PHP的操作符与控制结构

    一.操作符  操作符是用来对数组和变量进行某种操作运算的符号. 算术操作符 操作符 名称 示例 + 加 $a+$b - 减 $a-$b * 乘 $a*$b / 除 $a/$b % 取余 $a%$b 复 ...

  2. perl之更多的控制结构

    1.unless/if结构 unless 条件为假的时候 才执行语句块. eg: unless($fred =~ /^[A-Z_]\w*$/i){ print "The value of \ ...

  3. 虚幻4外包团队-推荐非常全面的的Unreal教程

    <Unreal SDK 游戏开发从入门到精通(UnrealScript语法.UI Scene界面.UDK独立开发游戏)> 课程讲师:Shark  课程分类:.net 适合人群:初级 课时数 ...

  4. 12.06 JavaScript

    任务 掌握JavaScript基础知识,能够使用JavaScript编写一些复杂度不大的交互功能. 任务: JavaScript基础 做完任务一的时候深深地感觉到自己的基础非常的薄弱,在这里再次感谢一 ...

  5. ios学习笔记之2天来总结

    学了2天,小结下. ios的基本代码执行流程: 与java的基本异同: 异: 1.基类:java中Object是所有类的父类,而objective-c的根类为NSObject 2.默认访问类型:jav ...

  6. JavaScript重新介绍

    本文转载自 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript 引言 为什么 ...

  7. JavaScript 系列博客(一)

    JavaScript 系列博客(一) 前言 本系列博客为记录学习 JavaScript 的学习笔记,会从基础开始慢慢探索 js.今天的学习笔记主要为 js 引入.定义变量以及 JavaScript 中 ...

  8. JavaScript-导论

    说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.什 ...

  9. 速学JavaScript!

    什么是JavaScript? JavaScript是一种轻量级的脚本语言,也是一种嵌入式语言,是一种对象模型语言,简称JS:JavaScript的核心语法部分(语言本身)很精简,只包括两个部分: 基本 ...

随机推荐

  1. fieldset效果

    <form> <fieldset> <legend>健康信息</legend> 身高:<input type="text" / ...

  2. seajs + easyui [转]

    * *content seajs+easyui使用 */ /** * 首先来看看在seajs中jquery和jquery插件如何使用 */ 1.jquery.js define(function(re ...

  3. chrome浏览器强制采用https加密链接

    在chrome地址栏输入chrome://net-internals/#hsts,然后把www.google.com添加到domain,并且Include subdomains全部沟上添加就可以了.

  4. sc delete 服务名

    当我们在cmd里使用 sc delete  服务名  ,来删除服务的时候,报错误,SC OpenService 失败5:拒绝访问. 这似乎是因为权限不够,解决方法. 首先,我们必须先取得管理员权限,以 ...

  5. ThinkPHP - 关联模型 - 一对多

    使用之前,先引入文件夹,否则相应的功能不能实现. 如果对thinkPHP不精通,使用或开发的时候,最好直接使用完成版本的ThinkPHP. 关系模型定义: <?php /** * 继承自 Rel ...

  6. Android 开发 AirPlay Server

    安卓上开发  AirPlay Server  主要是参考了和修改了 DroidAirPlay项目 , 和Airplay 协议 1, 将DroidAirPlay 下载下来 2, Eclipse 新建一个 ...

  7. java面向对象中的String类中12种常用的方法

    1.字符串与字符数组的转换 字符串可以使用toCharArray()方法变成一个字符数组,也可以使用String类的构造方法把一个字符数组变成一个字符串. public class StringAPI ...

  8. Hadoop集群的安装与配置(centos 6.5)

    一.Hadoop搭建准备(centOs6.5  且每个系统都要有同一个用户,如:hadoop)     1.IP的配置 包括Master和Slaves的IP配置,之间能够相互ping通:  例如:   ...

  9. pay包注释(一)

    lovep2c项目pay模块注释: views.py: def create_user_no(email):    return md5(email).hexdigest().upper() + &q ...

  10. QT5.6所开放的7个新模块(图表,虚拟键盘,性能分析,静态分析,测试正好,2D渲染)

    The modules newly available to open source users are: Qt Charts Qt Data Visualization Qt Virtual Key ...