0x05 表达式/运算符/流程控制
关于表达式
php中的表达式是构成php代码最基本的部分,所以就不讲了(主要是我不知道怎么讲) 其中有一种比较特殊的表达式三元表达式$first ? $second : $third 这是一种混合判断和赋值的表达式
另外作为一个在看基础知识的人尽量不要在赋值中混合递增/递减运算符 $c = $a++; 这样容易出错
关于运算符
运算是一个语言最基本的东西,php中有关于运算符优先级很详细的描述http://php.net/manual/zh/language.operators.precedence.php 不过在实际运算中,最好将你想要的顺序用()限制起来,以免造成不可预料的后果
关于php的运算符有两类值得注意的
1.位运算符
1.类型运算符instanceof
instanceof常用在控制反转(Inversion of Control)与依赖注入(Dependency Injection)中限定传入类型- if
- else
- elseif/else if
- while
- do-while
- for
- foreach
- break
- continue
- switch
- declare
- return
- require
- include
- require_once
- include_once
- goto
手册是这么说的:
declare 结构用来设定一段代码的执行指令。declare 的语法和其它流程控制结构相似:
declare (directive)
statement
directive 部分允许设定 declare 代码段的行为。目前只认识两个指令:ticks(更多信息见下面 ticks 指令)以及encoding(更多信息见下面 encoding指令)。
Tick(时钟周期)是一个在 declare 代码段中解释器每执行 N 条可计时的低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用ticks=N
来指定的。
不是所有语句都可计时。通常条件表达式和参数表达式都不可计时。
关于这个部分需要研究php的执行过程和对低级语句的定义,这位老兄在很多年前有研究https://my.oschina.net/Jacker/blog/32936