电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP基礎(chǔ)之表達(dá)式

瀏覽:5日期:2022-09-14 14:13:56

表達(dá)式是 PHP 最重要的基石。在 PHP 中,幾乎所寫的任何東西都是一個(gè)表達(dá)式。簡(jiǎn)單但卻最精確的定義一個(gè)表達(dá)式的方式就是“任何有值的東西”。

最基本的表達(dá)式形式是常量和變量。當(dāng)鍵入“$a = 5”,即將值“5”分配給變量 $a。“5”,很明顯,其值為 5,換句話說(shuō)“5”是一個(gè)值為 5 的表達(dá)式(在這里,“5”是一個(gè)整型常量)。

賦值之后,所期待情況是 $a 的值為 5,因而如果寫下 $b = $a,期望的是它猶如 $b = 5 一樣。換句話說(shuō),$a 也是一個(gè)值為 5 的表達(dá)式。如果一切運(yùn)行正確,那這正是將要發(fā)生的正確結(jié)果。

稍微復(fù)雜的表達(dá)式例子就是函數(shù)。例如,考慮下面的函數(shù):

<?phpfunction foo (){return 5;}?>

假定已經(jīng)熟悉了函數(shù)的概念,那么鍵入 $c = foo() 從本質(zhì)上來(lái)說(shuō)就如寫下 $c = 5,這沒(méi)錯(cuò)。函數(shù)也是表達(dá)式,表達(dá)式的值即為它們的返回值。既然 foo() 返回 5,表達(dá)式“foo()”的值也是 5。通常函數(shù)不會(huì)僅僅返回一個(gè)靜態(tài)值,而可能會(huì)計(jì)算一些東西。

當(dāng)然,PHP 中的值常常并非是整型的。PHP 支持四種標(biāo)量值(標(biāo)量值不能拆分為更小的單元,例如和數(shù)組不同)類型:整型值(integer),浮點(diǎn)數(shù)值(float),字符串值(string)和布爾值(boolean)。PHP 也支持兩種復(fù)合類型:數(shù)組和對(duì)象。這兩種類型具可以賦值給變量或者從函數(shù)返回。

PHP 和其它語(yǔ)言一樣在表達(dá)式的道路上發(fā)展,但推進(jìn)得更深遠(yuǎn)。PHP 是一種面向表達(dá)式的語(yǔ)言,從這一方面來(lái)講幾乎一切都是表達(dá)式。考慮剛才已經(jīng)研究過(guò)的例子,“$a = 5”。很顯然這里涉及到兩個(gè)值,整型常量“5”的值以及變量 $a 的值,它也被更新為 5。但是事實(shí)是這里還涉及到一個(gè)額外的值,即附值語(yǔ)句本身的值。賦值語(yǔ)句本身求值為被賦的值,即 5。實(shí)際上這意味著“$a = 5”,不必管它是做什么的,是一個(gè)值為 5 的表達(dá)式。因而,這樣寫“$b = ($a = 5)”和這樣寫“$a = 5; $b = 5”(分號(hào)標(biāo)志著語(yǔ)句的結(jié)束)是一樣的。因?yàn)橘x值操作的順序是由右到左的,也可以這么寫“$b = $a = 5”。

另外一個(gè)很好的面向表達(dá)式的例子就是前、后遞增和遞減。PHP 和多數(shù)其它語(yǔ)言的用戶應(yīng)該比較熟悉 variable++ 和 variable-- 符號(hào)。即遞增和遞減運(yùn)算符。在 PHP 中,和 C 語(yǔ)言一樣,有兩種類型的遞增——前遞增和后遞增,本質(zhì)上來(lái)講,前遞增和后遞增均增加了變量的值,并且對(duì)于變量的影響是相同的,不同的是遞增表達(dá)式的值。前遞增,寫做“++$variable”,求增加后的值(PHP 在讀取變量的值之前,增加變量的值,因而稱之為“前遞增”)。后遞增,寫做“$variable++”,求變量未遞增之前的原始值(PHP 在讀取變量的值之后,增加變量的值,因而叫做“后遞增”)。

一個(gè)常用到表達(dá)式類型是比較表達(dá)式。這些表達(dá)式求值為 FALSETRUE。PHP 支持 >(大于),>=(大于等于),==(等于),!=(不等于),<(小于)和 <=(小于等于)。PHP 還支持全等運(yùn)算符 ===(值和類型均相同)和非全等運(yùn)算符 !==(值或者類型不同)。這些表達(dá)式都常用于條件判斷語(yǔ)句中,比如,if 語(yǔ)句。

這里,將要研究的最后一個(gè)例子是組合的運(yùn)算賦值表達(dá)式。已經(jīng)知道如果想要為變量 $a 加 1,可以簡(jiǎn)單的寫“$a++”或者“++$a”。但是如果想為變量增加大于 1 的值,比如 3,該怎么做?可以多次寫“$a++”,但這樣明顯不是一種高效舒適的方法,一個(gè)更加通用的做法是“$a = $a + 3”。“$a + 3”等值于 $a 加上 3 的值,并且得到的值重新賦予變量$a,于是 $a 的值增加了3。在 PHP 及其它幾種語(yǔ)言例如 C 中,可以以一種更加簡(jiǎn)短的形式完成上述功能,因而也更加清楚快捷。為 $a 的當(dāng)前值加 3,可以這樣寫:“$a += 3”。這里的意思是“取變量 $a 的值,加 3,得到的結(jié)果再次分配給變量 $a”。除了更簡(jiǎn)略和清楚外,也可以更快的運(yùn)行。“$a += 3”的值,如同一個(gè)正常賦值操作的值,是賦值后的值。注意它不是 3,而是 $a 的值加上3 之后的值(此值將被賦給 $a)。任何二元運(yùn)算符都可以用運(yùn)算賦值模式,例如“$a -= 5”(從變量 $a 的值中減去 5),“$b *= 7”(變量 $b 乘以 7),等等。

還有一個(gè)表達(dá)式,如果沒(méi)有在別的語(yǔ)言中看到過(guò)的話,可能看上去很奇怪,即三元條件運(yùn)算符:

<?php$first ? $second : $third?>

如果第一個(gè)子表達(dá)式的值是 TRUE(非零),那么第二個(gè)子表達(dá)式被求值,其值即為整個(gè)條件表達(dá)式的值。否則,第三個(gè)子表達(dá)式將被求值并且其值成為整個(gè)表達(dá)式的值。

下面的例子一般來(lái)說(shuō)應(yīng)該有助于理解前、后遞增和表達(dá)式:

<?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 beforethe increment, 2*6 = 12 to $f */$g = double(++$e); /* assign twice the value of $e afterthe increment, 2*7 = 14 to $g */$h = $g += 10; /* first, $g is incremented by 10 and ends with thevalue of 24. the value of the assignment (24) isthen assigned into $h, and $h ends with the valueof 24 as well. */?>

一些表達(dá)式可以被當(dāng)成語(yǔ)句。這時(shí),一條語(yǔ)句的形式是 expr ;,即一個(gè)表達(dá)式加一個(gè)分號(hào)結(jié)尾。在 ’$b = $a = 5;’ 中,’$a = 5’ 是一個(gè)有效的表達(dá)式,但它本身不是一條語(yǔ)句。而 ’$b = $a = 5;’ 則是一條有效的語(yǔ)句。

最后一件值得提起的事情就是表達(dá)式的真值。在許多事件中,大體上主要是在條件執(zhí)行和循環(huán)中,并不關(guān)心表達(dá)式中具體的值,而是只關(guān)心表達(dá)式的值是否是 TRUE 或者FALSE。常量 TRUEFALSE(大小寫無(wú)關(guān))是兩種可能的布爾值。在必要時(shí),一個(gè)表達(dá)式將自動(dòng)轉(zhuǎn)換為布爾值。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 天长市晶耀仪表有限公司 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 高压负荷开关-苏州雷尔沃电器有限公司 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 长沙广告公司|长沙广告制作设计|长沙led灯箱招牌制作找望城湖南锦蓝广告装饰工程有限公司 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | CE认证_产品欧盟ROHS-REACH检测机构-商通检测 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 智慧消防-消防物联网系统云平台 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 粉丝机械,粉丝烘干机,粉丝生产线-招远市远东粉丝机械有限公司 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 超声波清洗机_细胞破碎仪_实验室超声仪器_恒温水浴-广东洁盟深那仪器 | 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 缝纫客| 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 中山市派格家具有限公司【官网】 | 玻璃钢罐_玻璃钢储罐_盐酸罐厂家-河北华盛节能设备有限公司 |