0

0

PHP中的表达式_PHP教程

php中文网

php中文网

发布时间:2016-07-15 13:24:43

|

1288人浏览过

|

来源于php中文网

原创

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

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

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

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

立即学习PHP免费学习笔记(深入)”;

@@######@@

假定你已经熟悉了函数的概念(如果不是的话,请看一下函数的相关章节),那么键入 $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 支持 >(大于),>=(大于等于),==(等于),!=(不等于),

这里,我们将要研究的最后一个例子是组合的赋值操作符表达式。你已经知道如果想要为变量 $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),等等。

有一些表达式,如果你没有在别的语言中看到过的话,可能认为它们是多余的,如三重操作符:

@@######@@

如果第一个子表达式的值是 TRUE(非零),那么计算第二个子表达式的值,其值即为整个表达式的值。否则,将是第三个子表达式的值。

下面的例子一般来说应该可以稍微帮你理解前、后递增和表达式: 

@@######@@

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

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

PHP 提供了一套完整强大的表达式,而为它提供完整的文件资料已经超出了本手册的范围。上面的例子应该为你提供了一个好的关于什么是表达式和怎样构建一个有用的表达式的概念。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446736.htmlTechArticle表达式是PHP 最重要的基石。在 PHP 中,几乎你所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是“anything tha...
<?phpfunction foo (){   return 5;}?> 
$first ? $second : $third
<?phpfunction 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 before                       the increment, 2*6 = 12 to $f */$g = double(++$e);  /* assign twice the value of $e after                       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. */?>

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

616

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

194

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

91

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

54

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

598

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

56

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.1万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号