PHP最基本的表达式形式是什么,如何理解表达式
表达式是 PHP 最重要的基石。在 PHP 中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。
最基本的表达式形式是常量和变量。当键入“$a= 5”,即将值“5”分配给变量$a。“5”,很明显,其值为 5,换句话说“5”是一个值为 5 的表达式(在这里,“5”是一个整型常量)。
赋值之后,所期待情况是$a的值为 5,因而如果写下$b=$a,期望的是它犹如$b= 5 一样。换句话说,$a也是一个值为 5 的表达式。如果一切运行正确,那这正是将要发生的正确结果。
稍微复杂的表达式例子就是函数。例如,考虑下面的函数:
<?php
functionfoo()
{
return5;
}
?>
假定已经熟悉了函数的概念,那么键入$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),等等。
还有一个表达式,如果没有在别的语言中看到过的话,可能看上去很奇怪,即三元条件运算符:
<?php
$first?$second:$third
?>
如果第一个子表达式的值是TRUE(非零),那么第二个子表达式被求值,其值即为整个条件表达式的值。否则,第三个子表达式将被求值并且其值成为整个表达式的值。
下面的例子一般来说应该有助于理解前、后递增和表达式:
<?php
functiondouble($i)
{
return$i*2;
}
$b=$a=5;/*assignthevaluefiveintothevariable$aand$b*/
$c=$a++;/*post-increment,assignoriginalvalueof$a
(5)to$c*/
$e=$d=++$b;/*pre-increment,assigntheincrementedvalueof
$b(6)to$dand$e*/
/*atthispoint,both$dand$eareequalto6*/
$f=double($d++);/*assigntwicethevalueof$dbefore
theincrement,2*6=12to$f*/
$g=double(++$e);/*assigntwicethevalueof$eafter
theincrement,2*7=14to$g*/
$h=$g+=10;/*first,$gisincrementedby10andendswiththe
valueof24.thevalueoftheassignment(24)is
thenassignedinto$h,and$hendswiththevalue
of24aswell.*/
?>
一些表达式可以被当成语句。这时,一条语句的形式是expr ;,即一个表达式加一个分号结尾。在'$b = $a = 5;'中,'$a = 5'是一个有效的表达式,但它本身不是一条语句。而'$b = $a = 5;'则是一条有效的语句。
最后一件值得提起的事情就是表达式的真值。在许多事件中,大体上主要是在条件执行和循环中,并不关心表达式中具体的值,而是只关心表达式的值是否是TRUE或者FALSE。常量TRUE和FALSE(大小写无关)是两种可能的布尔值。在必要时,一个表达式将自动转换为布尔值。
以上就是关于“PHP最基本的表达式形式是什么,如何理解表达式”的介绍了,感谢各位的阅读,希望这篇文章能帮助大家解决问题。如果想要了解更多知识,欢迎关注博信,小编每天都会为大家更新不同的知识。
版权声明
本文仅代表作者观点,不代表博信信息网立场。