`
xdlliutao
  • 浏览: 35692 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

PHP基础-表达式介绍

阅读更多
表达式是 PHP 最重要的基石。在PHP 编程

中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。



最基本的表达式形式是常量和变量。当键入“$a = 5”,即将值“5”分配给变量 $a。“5”,很明显,其值为 5,换句话说“5”是一个值为 5 的表达式(在这里,“5”是一个整型常量)。



赋值之后,所期待情况是 $a 的值为 5,因而如果写下 $b = $a,期望的是它犹如 $b = 5 一样。换句话说,$a 也是一个值为 5 的表达式。如果一切运行正确,那这正是将要发生的正确结果。



稍微复杂的表达式例子就是函数。例如,考虑下面的函数:



function foo ()

{

return 5;

}

?>

假定已经熟悉了函数的概念,那么键入 $c = foo() 从本质上来说就如写下 $c = 5,这没错。函数也是表达式,表达式的值即为它们的返回值。既然 foo() 返回 5,表达式“foo()”的值也是 5。通常函数不会仅仅返回一个静态值,而可能会计算一些东西。



当然,PHP 中的值常常并非是整型的。PHP 支持四种标量值(标量值不能拆分为更小的单元,例如和数组不同)类型:整型值(integer),浮点数值(float),字符串值(string)和布尔值(boolean)。PHP 也支持两种复合类型:数组和对象。这两种类型具可以赋值给变量或者从函数返回。



PHP 和其它语言一样在表达式的道路上发展,但推进得更深远。PHP 是一种面向表达式的语言,从这一方面来讲几乎一切都是表达式。考虑刚才已经研究过的例子,“$a = 5”。很显然这里涉及到两个值,整型常量“5”的值以及变量 $a 的值,它也被更新为 5。但是事实是这里还涉及到一个额外的值,即附值语句本身的值。赋值语句本身求值为被赋的值,即 5。实际上这意味着“$a = 5”,不必管它是做什么的,是一个值为 5 的表达式。因而,这样写“$b = ($a = 5)”和这样写“$a = 5; $b = 5”(分号标志着语句的结束)是一样的。因为赋值操作的顺序是由右到左的,也可以这么写“$b = $a = 5”。



另外一个很好的面向表达式的例子就是前、后递增和递减。PHP 和多数其它语言的用户应该比较熟悉 variable++ 和 variable-- 符号。即递增和递减运算符。在 PHP 中,和 C 语言一样,有两种类型的递增——前递增和后递增,本质上来讲,前递增和后递增均增加了变量的值,并且对于变量的影响是相同的,不同的是递增表达式的值。前递增,写做“++$variable”,求增加后的值(PHP 在读取变量的值之前,增加变量的值,因而称之为“前递增”)。后递增,写做“$variable++”,求变量未递增之前的原始值(PHP 在读取变量的值之后,增加变量的值,因而叫做“后递增”)。



一个常用到表达式类型是比较表达式。这些表达式求值为 FALSE 或 TRUE。PHP 支持 >(大于),>=(大于等于),==(等于),!=(不等于),<(小于)和 <=(小于等于)。PHP 还支持全等运算符 ===(值和类型均相同)和非全等运算符 !==(值或者类型不同)。这些表达式都常用于条件判断语句中,比如,if 语句。



这里,将要研究的最后一个例子是组合的运算赋值表达式。已经知道如果想要为变量 $a 加 1,可以简单的写“$a++”或者“++$a”。但是如果想为变量增加大于 1 的值,比如 3,该怎么做?可以多次写“$a++”,但这样明显不是一种高效舒适的方法,一个更加通用的做法是“$a = $a + 3”。“$a + 3”等值于 $a 加上 3 的值,并且得到的值重新赋予变量$a,于是 $a 的值增加了3。在 PHP 及其它几种语言例如 C 中,可以以一种更加简短的形式完成上述功能,因而也更加清楚快捷。为 $a 的当前值加 3,可以这样写:“$a += 3”。这里的意思是“取变量 $a 的值,加 3,得到的结果再次分配给变量 $a”。除了更简略和清楚外,也可以更快的运行。“$a += 3”的值,如同一个正常赋值操作的值,是赋值后的值。注意它不是 3,而是 $a 的值加上3 之后的值(此值将被赋给 $a)。任何二元运算符都可以用运算赋值模式,例如“$a -= 5”(从变量 $a 的值中减去 5),“$b *= 7”(变量 $b 乘以 7),等等。



还有一个表达式,如果没有在别的语言中看到过的话,可能看上去很奇怪,即三元条件运算符:



$first ? $second : $third

?>

如果第一个子表达式的值是TRUE(非零),那么第二个子表达式被求值,其值即为整个条件表达式的值。否则,第三个子表达式将被求值并且其值成为整个表达式的值。



下面的例子一般来说应该有助于理解前、后递增和表达式:



function double($i)

{

return $i*2;

}

$b = $a = 5; /* assign the value five intothe variable $a and $b */

$c = $a++; /* post-increment, assignoriginal value of $a

(5) to $c */

$e = $d = ++$b; /* pre-increment, assignthe incremented value of

$b (6) to $d and $e */

/* at this point, both $d and $e are equalto 6 */

$f = double($d++); /* assign twice thevalue of $d before

the increment, 2*6 = 12 to $f */

$g = double(++$e); /* assign twice thevalue of $e after

the increment, 2*7 = 14 to $g */

$h = $g += 10; /* first, $g is incrementedby 10 and ends with the

value of 24. the value of the assignment(24) is

then assigned into $h, and $h ends with thevalue

of 24 as well. */

?>

一些表达式可以被当成语句。这时,一条语句的形式是 expr ;,即一个表达式加一个分号结尾。在 '$b = $a = 5;' 中,'$a = 5' 是一个有效的表达式,但它本身不是一条语句。而 '$b = $a = 5;' 则是一条有效的语句。



最后一件值得提起的事情就是表达式的真值。在许多事件中,大体上主要是在条件执行和循环中,并不关心表达式中具体的值,而是只关心表达式的值是否是 TRUE 或者FALSE。常量 TRUE 和FALSE(大小写无关)是两种可能的布尔值。在必要时,一个表达式将自动转换为布尔值。
分享到:
评论

相关推荐

    PHP编程基础--表达式与语句.ppt

    * PHP编程基础 -----PHP表达式与语句 课程内容 表达式与语句 条件语句 循环语句 跳转语句 一、表达式与语句 表达式是用于计算值的操作,返回一个值,以下是常见的几种表达式: 常量、变量,如3.14、$a。 由运算符和...

    java基础09-正则表达式.pptx

    正则表达式,又称规则...当然在Java中也可以通过处理字符串的方式达到检索,替换文本字符串的目的,但是有了正则表达式写代码更加简洁,通常两三行代码就可以达到目的,当然这也是建立在熟悉正则表达式的基础之上的。

    php的正则表达式完全手册

    1956 年,Stephen Kleene 数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。 2. 正则表达式定义 正则表达式是一种字符串匹配的模式,可以...

    PHP正则表达式全局概括(思维导图总结)

    博主已将php中正则表达式常用点基本画到了这张思维导图中去了,便于日后便于查阅,有漏写的地方,还望海涵。

    PHP100视频教程 36:PHP中正则表达式学习及应用(一)

    2、PHP中两个常用的正则函数preg_match 正则函数,以perl语言为基础ereg 正则函数,以POSIX基础 (Unix 、 Script)3、正则表达式中包括的元素 (1)、原子(普通字符:a-z A-Z 0-9 、原子表、 转义字符) (2)、元...

    PHP专业基础教程 自学php的首选

    □PHP 3 教程 -- 数据库支持 □PHP 3 教程 -- 正则表达式格式 □PHP 3 教程 -- 出错操作 □PHP 3 教程 -- 变化变量 □PHP 3 教程 -- 外界PHP变量 □PHP 3 教程 -- 服务器设置指示 □PHP 3 教程 -- 时间函数 □PHP 3 ...

    正则表达式---------资料整理,适合新手学习使用,对正则表达式的学习很有帮助

    1956 年,一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。 2. 正则表达式定义:正则表达式(regular expression)...

    PHP正则表达式基础知识

    学习正则表达式,菜鸟必看。如果你想学习正则,请进来看看吧!

    PHP编程基础--PHP运算符.ppt

    二、逻辑运算符 逻辑运算符只能对布尔... 四、NULL合并运算符 该运算符是PHP 7新增的运算符,其语法格式如下: 上述语句表示,如果表达式1存在值且不为NULL,则返回该值,否则返回表达式2的值,具体示例如下: 示例中,

    正则表达式完整高清版

    第三部分将之前介绍的各种知识落实到6种常用语言.net、java、javascript、php、python、ruby中,不但详细介绍了语言中正则表达式的用法,更点明了版本之间的细微差异,既可以作为专门学习的教材,也可以作为有用的...

    PHP100视频教程 36:PHP中正则表达式学习及应用(一).rar

    软件介绍 1、正则表达式的介绍和作用 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串 的需要。正则表达式就是用于描述这些规则的语法。 2、PHP中两个常用的正则函数 preg_match 正则...

    PHP正则表达式(基础篇,适合初学者)

    我是一个初学者,刚整理的PHP正则表达式...

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    PHP表达式语言-PHP开发

    PHP表达式语言此库的目的是为PHP表达式语言提供通用基础。 这并不是一个真正的创意库,因为它可以从PHP表达式语言的优秀JMSSecurityExtraBundle中挖掘几乎所有代码。该库的目的是为PHP表达式语言提供通用基础。 这并...

    详解linux正则表达式(基础正则表达式+扩展正则表达式)

    正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一定离不开正则表达式的配合。 1、什么是正则...

    PHP正则表达式之定界符和原子介绍

    本节内容我们将介绍PHP中正则 表达式的基础语法:定界符和原子。内容包含了定界符的定义以及原子的定义和构成等等。其中原子的构成十分灵活,以便满足我们对处理字符串的需求。在这之 前,我们需要先了解一个正则...

    零基础学PHP+MySQL源代码(最新)

    《零基础学PHP+MYSQL》共19章内容,包括PHP的基础知识和应用方法、PHP简介、PHP的安装和设置、PHP的语法、PHP常用函数说明、PHP简单应用实例、PHP数据库编程、Ajax、XML、正则表达式、PHP与MySQL综合应用实例等。...

    史上最全PHP5基础精讲教程

    PHP基础教程-推荐.doc PHP基础教程之函数篇.doc php字符串.doc PHP数组读取的循环操作.doc php时间函数大锦集.doc PHP最常用的ini函数.doc PHP正则表达式.doc PHP的CURL库简单和有效地抓网页.doc PHP的文件与目录...

    Java中正则表达式使用方法详解

    本文接下来的内容先简要地介绍正则表达式的入门知识,然后以Jakarta-ORO API为例介绍如何使用正则表达式。 一、正则表达式基础知识 我们先从简单的开始。假设你要搜索一个包含字符“cat”的字符串,搜索用的正则...

    PHP语言基础知识(超详细).md

    涵盖了PHP语言的基础知识,非常详细全面。...这篇文章从PHP的基础知识讲起,循序渐进地介绍了PHP的语法、数据类型、流程控制、函数、数组等核心知识点。对于初学者来说,这个教程可以作为入门学习的必备资料。

Global site tag (gtag.js) - Google Analytics