PHP - 操作符与控制结构
第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 |
|
右 |
|
|
左 |
= += -= *= /= .= %= &= |= ^= ~= <<= >>= |
|
左 |
?: |
|
左 |
|| |
|
左 |
&& |
|
左 |
| |
|
左 |
^ |
|
左 |
& |
|
不相关 |
= = != = = = = != = |
|
不相关 |
<<= >>= |
|
左 |
<< >> |
|
左 |
+ - . |
|
左 |
* / % |
|
右 |
! ~ ++ -- (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 - 操作符与控制结构的更多相关文章
- PHP的操作符与控制结构
一.操作符 操作符是用来对数组和变量进行某种操作运算的符号. 算术操作符 操作符 名称 示例 + 加 $a+$b - 减 $a-$b * 乘 $a*$b / 除 $a/$b % 取余 $a%$b 复 ...
- perl之更多的控制结构
1.unless/if结构 unless 条件为假的时候 才执行语句块. eg: unless($fred =~ /^[A-Z_]\w*$/i){ print "The value of \ ...
- 虚幻4外包团队-推荐非常全面的的Unreal教程
<Unreal SDK 游戏开发从入门到精通(UnrealScript语法.UI Scene界面.UDK独立开发游戏)> 课程讲师:Shark 课程分类:.net 适合人群:初级 课时数 ...
- 12.06 JavaScript
任务 掌握JavaScript基础知识,能够使用JavaScript编写一些复杂度不大的交互功能. 任务: JavaScript基础 做完任务一的时候深深地感觉到自己的基础非常的薄弱,在这里再次感谢一 ...
- ios学习笔记之2天来总结
学了2天,小结下. ios的基本代码执行流程: 与java的基本异同: 异: 1.基类:java中Object是所有类的父类,而objective-c的根类为NSObject 2.默认访问类型:jav ...
- JavaScript重新介绍
本文转载自 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript 引言 为什么 ...
- JavaScript 系列博客(一)
JavaScript 系列博客(一) 前言 本系列博客为记录学习 JavaScript 的学习笔记,会从基础开始慢慢探索 js.今天的学习笔记主要为 js 引入.定义变量以及 JavaScript 中 ...
- JavaScript-导论
说明:此类博客来自以下链接,对原内容做了标注重点知识,此处仅供自己学习参考! 来源:https://wangdoc.com/javascript/basic/introduction.html 1.什 ...
- 速学JavaScript!
什么是JavaScript? JavaScript是一种轻量级的脚本语言,也是一种嵌入式语言,是一种对象模型语言,简称JS:JavaScript的核心语法部分(语言本身)很精简,只包括两个部分: 基本 ...
随机推荐
- muduo简化(1):Reactor的关键结构
说明:本文参照muduo代码,主要用意是简化muduo代码呈现其主要结构,并脱离muduo的文件依赖. 本节简化的是Reactor的关键结构部分:EventLoop.Poller.Channel.遵照 ...
- webviewactivity
WebView注意点,注释里有说明 package com.example.suneyaenews; import com.example.http.HttpThread; import androi ...
- phpeclipse
http://phpeclipse.sourceforge.net/update/stable/1.2.x/
- vs2010 条件断点 has changed是什么意思?
在vs2010 断点设置 condition里,有2个选项可以选择: 一个是true,另个是has changed,true好理解,如果表达式为真则停止.但是has changed是什么意思.看了官网 ...
- java学习之IO对象流
//注意对象类要打标记实现Serializable接口 package com.gh; import java.io.FileInputStream; import java.io.FileNotFo ...
- Swift主题色顶级解决方案一
一.常规主题色使用点 应用在发布前都会对其主题色进行设置,以统一应用的风格(可能有多套主题).在主题色设置上有几个方面,如下: 1.TabBar部分,设置图片高亮.文本高度颜色 2.Navigatio ...
- OracleDBConsoleorcl无法启动
OracleDBConsoleorcl无法启动 向左转|向右转 提问者采纳 2010-10-13 19:40 我前几天刚解决了这个问题 这个错误原因是因为你的ip是动态获取的,你在安装Oracle时 ...
- ContentProvider的一些总结
ContentProvider中的URI, The URI that identifies the provider 一个特定的uri对应着唯一一个内容提供者, 谷歌官方文档里的说明, Query ...
- JVM -- 类的初始化
<深入理解Java虚拟机> 第二版中介绍到了类的加载过程. 一个类从加载入内存到卸载出内存为止,整个生命周期包括: Loading(加载)-----Verification(验证)---- ...
- POJ2125 Destroying The Graph 二分图 + 最小点权覆盖 + 最小割
思路来源:http://blog.csdn.net/lenleaves/article/details/7873441 求最小点权覆盖,同样求一个最小割,但是要求出割去了那些边, 只要用最终的剩余网络 ...