首页 >> 读书频道 >> 电脑 >> 表达式
 
· 在ASP.NET访问Ex
· 预定义常量
· 用ASP+XML打造留言
· 语法
· PHP 的外部变量
· 可变变量
· ASP.NET重用代码技
· 预定义变量
· ASP.NET重用代码技
· 基础
· 类型戏法
· ASP.NET编程实例A
 
· 国家六部门联合发文
· 红楼梦:120回全本[清
· 常见图像文件格式详解
· 拉封丹寓言
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

表达式


查看有无更新版本

关键字:PHP 2006-9-22

 

表达式是 PHP 最重要的基石。在 PHP 中,几乎你所写的任何东西都是一个表达式。 简单但却最精确的定义一个表达式的方式就是“anything that has a value”。

最基本的表达式形式是常量和变量。当你键入“$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 支持三种标量值类型:整型值,浮点值和字符串值 (标量值不能拆分为更小的单元,比如:数组)。PHP 也支持两种复合类型:数组和对象。 这两种类型具可以赋值给变量或者从函数返回。

到目前为止,PHP/FI 2 的用户不应该感到任何的变化。然而,当许多其它语言 为之努力的时候,PHP 在相同道路上促进了表达式的成长。PHP 是一种面向表达式 的语言,从这一方面来讲几乎一切都是表达式。考虑刚才我们已经研究过的例子, ‘$a = 5’。可以轻松的看到这里有两个相关的值,整型常量 '5',而且变量 $a 的值也被更新为5。但是事实是:这里只有一个相关的附加值,即被分配的值本身。 赋值操作计算需分配的值,即5。实际上,意味着‘$a = 5’,不必管它是做什么的, 是一个值为5的表达式。因而,一些像这样的代码‘$b = ($a = 5)’和‘$a =5; $b=5’ (分号标志着语句的结束)。因为赋值操作的顺序是由右到左的,你也可以这么写 ‘$b = $a =5’。

另外一个很好的面向表达式的例子就是前、后递增和递减。 PHP/FI 2 和多数其它语言的用户应该比较熟悉变量++和变量--符号。即递增和递减 操作符。在 PHP/FI 2 中,语句‘$a++’没有值(不是表达式),这样的话你便不能为 其赋值或者以任何其它方式来使用它。PHP 通过将其变为了表达式,如 C 语言,增强了 递增/递减的能力。在 PHP 和 C 语言 中,有两种类型的递增前递增和后递增,本质 上来讲,前递增和后递增均增加了变量的值,并且对于变量的影响是相同的。不同的是 递增表达式的值。前递增,写做‘++$variable’,求增加后的值(PHP 在读取变量的值 之前,增加变量的值,因而称之为‘前递增’)。后递增,写做‘$variable++’,求变量 未递增之前的原始值(PHP 在读取变量的值之后,增加变量的值,因而叫做‘后递增’)。 【译者注:前递增,++$a, 则该表达式的值加1;后递增, $a++, 则该表达式的值不变。】

一个常用到表达式类型是比较表达式。这些表达式求值0或者1,即 FALSE 或者 TRUE (分别的)。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 += 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 into the variable $a and $b */
$c = $a++;          /* post-increment, assign original value of $a
                       (5) to $c */
$e = $d = ++$b;     /* pre-increment, assign the incremented value of
                       $b (6) to $d and $e */

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

$f = double($d++);  /* assign twice the value of $d <emphasis>before</emphasis>
                       the increment, 2*6 = 12 to $f */
$g = double(++$e);  /* assign twice the value of $e <emphasis>after</emphasis>
                       the increment, 2*7 = 14 to $g */
$h = $g += 10;      /* first, $g is incremented by 10 and ends with the
                       value of 24. the value of the assignment (24) is
                       then assigned into $h, and $h ends with the value
                       of 24 as well. */
 

 

在本章的开始,我们说过我们将会描述多种语句类型,并且如同许诺的那样, 表达式可以是语句。尽管如此,不是每个表达式都是一个语句。而这样的话, 一个语句,它的形式是'expr' ';',一个表达式有一个分号结尾。在‘$b=$a=5;’, $a=5 是一个有效的表达式,但是它却不是一个语句。‘$b=$a=5;’ 却是一个有效 的语句。

最后一件值得提起的事情就是表达式的真实值。在许多事件中,大体上主要是 在条件执行和循环中,不要专注于表达式中明确的值,反而要注意表达式的 值是否是 TRUE 或者 FALSE。 常量 TRUE 和 FALSE (大小写无关)是两种可能的 Boolean 值。如果有 必要,一个表达式将自动转换为 Boolean。参照 关于类型跳转的部分。

PHP 提供了一套完整强大的表达式,而为它提供完整的文件资料已经超出了 本手册的范围。上面的例子应该为你提供了一个好的关于什么是表达式和怎 样构建一个有用的表达式的概念。在本手册的其余部分,我们将始终使用 expr来表示一个有效的 PHP 表达式。

 

表达式

[ 1 ]
表达式 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑