第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. unix IO笔记

    一.IO与文件映射 1.IO的共享与效率 read与write其中数据缓冲的大小 读取数据的缓冲:getpagesize 2.定位与定位读取(随机读取) read与write在操作的时候,自动移动读取 ...

  2. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种,实测成功)

    以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com ...

  3. fedora 设置命令别名

    用命令 alias 举例: alias ggw="g++ -g -Wall" ggw 是自定义的别名,可根据需要进行修改设置,等于后面的则是别名的具体含义,在终端输入ggw就像当于 ...

  4. Java中static、final用法

    一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...

  5. JavaScript 高级程序设计(第3版)笔记——chapter3:基本概念(函数部分)

    3.7函数 3.7.1 理解参数 ECMAScript 函数不介意传递进来多个参数,也不在乎传递进来的参数是什么数据类型.因为在 ECMAScript 中的参数在内部是用一个数组来表示的.在函数体内可 ...

  6. BestCoder Round #50 (div.1) 1001 Distribution money (HDU OJ 5364)

    题目:Click here 题意:bestcoder上面有中文题目 #include <iostream> #include <cstdio> #include <cst ...

  7. word排版的一些小技巧积累

    先准备好样式 编辑前,可以先根据要求,设置好样式,可以免去编辑好后,再修改格式(这样要改好多文本的格式) docx doc的样式不能通用. .docx转.doc 从word2013自带的编辑公式,编辑 ...

  8. [Swust OJ 842]--实验室和食堂(最短路,Dijkstra算法)

    题目链接:http://acm.swust.edu.cn/problem/842/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  9. Android中弹出对话框,AlertDialog关键代码

    写在这里便于以后查看. Android中弹出对话框的关键代码: btn01.setOnClickListener(new OnClickListener() { @Override public vo ...

  10. cURL实现get、post请求

    1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...