admin 管理员组

文章数量: 1086019


2024年4月24日发(作者:乱世三义电视剧免费观看达达兔)

维普资讯

歹F放系统照界 

跟我学PHP开发 

《黼 

这一讲主要介绍PHP语言的语法基础,包括基本语法、类型、变量和常量的声 

明、运算符、流程控制和PHP中的函数。 

第二讲P H P基础 

■王海泉路新喜魏力强 

基本语法 

标记可能比较省力,但是某些 

束标记“7>”同样隐含语句的 

情况下,可能必须要使用长格 结束。因此,下面的代码是等 

1.从HTML中分离 

式的标记。比如,在XML或 价的: 

PHP语言通常被嵌套在 

XHTML中嵌入PHP代码,将 

<?php 

HTML文件中,被用户访问时, 需要使用<?php...?>形式的 

echo’叮his{Satest”: 

由服务器来对PHP代码进行 

标记以适应XML的标准。 

?> 

解释和执行,并生成对应的 下面给出了4种标记方式。 

HTML代码,从而返回给用户。 

1;<?php E,ch。憾是个测试 ¨):々 

<?phpecho"l'hisisale默”?> 

;i ̄HTML文件当中,PHP的 

脚本是由文件中一对特殊的标 

2.<?echo(”这是个测试!”):?> 

3.注释 

记所引起的内容,当服务器的 

PHP支持C、C++和Unix 

解释器分析一个文件时,对这 

可简写为: Shell风格的注释。单行注释仅 

些特殊标记内的内容进行处理; 

《?=expression?’ 

仅注释到行末或当前的PH P 

而对其它的内容不做任何处理。 

代码块,这一点同C++是一致 

特殊标记内文件将作为PHP代 

3.‘scrlpt Ianguage=”php“’ 

的,但在使用的时候要小一IL,,不 

码被解释器分析执行。这样就 

echo 这是个测试}”); 

要嵌套C风格的注释。如果注 

可以在HTML中方便地嵌入 

</script> 一 

释大量代码,则可能犯错误。 

PHP代码,并且不影响其它的 

下例给出了注释的范例: 

内容。 

4.<%ecl_静(-.这是个测 霞 ):%’ 

<?php 

用来标记PHP代码块的标 

echo”输出内容”;II单行注 

记共有四套,其中只有两套总 可简写为: 

释 

是有效,也就是<?php...?>和 

《% expression、%》 

,.多行 

<script language=”php”>...<, 

script> ̄另外两套可以在php. 

2.指令分隔符 

鼍l 降‘j 

ini配置文件中开启或关闭。虽 指令分隔方式与C或Perl 

echo One FinaITest";襻另一 

然短格式的标记和ASP风格的 

类似,每个语句由分号格开,结 

种单行注释 

200 6.

nR 

08 

OPEN SOURCE WORLD MONTHLY 91

维普资讯

知识 

nOwIedge Classroom.警 …………………………….. 

责编/国晓平gxp@ccu.com.on美编/庆琨 

数据类型 

1.简介 

PHP支持八种原始类型, 

其中四种标量类型有布尔型 

¥a; 234; 

¥a 1.2e3; 

¥arr=array(”foo”=>”bar”。1 2 

=,true); 

//key可以是integer或string 

//value可以是任何值 

echo¥arr[’'foo’ //bar 

echo¥arr[12】://1 

Sa=7E.1O 

> 

(Boolean)、整型(Integer)、浮 5.字符申 

点型(Float,也作Double)和 

字符串(String);两种复合类型 

有数组(Array)、对象(Object)I 

最后是资源(Resou rce)和 

NULL两种特殊类型。 

同C语言或Java语言不同, 

变量的类型通常不是由程序员 

设定的。确切地说,变量不需要 

事先进行类型的声明,而是由 

PHP解释器根据该变量使用的 

上下文在运行时决定的。 

2.布尔型 

布尔型是最简单的类型。 

boolean表达了真值,可以为 

TRUE或FALSE。 

3.整型 

个integer是集合Z=(.._, 

2,一1,0,1,2….)中的一个数。 

整型值可以用十进制、十 

六进制或八进制符号指定,前 

面可以加上可选的符号(“一”或 

者“+”)。如果用八进制符号, 

数字前必须加上…0(零),用 

十六进制符号数字前必须加上 

“0x” 

4.浮点型 

浮点数(也叫F I o at s、 

Doubles或Real Numbers)可 

以用以下任何语法定义: 

<?php 

92拜救系统鲢 

slnng是一系列字符。在PHP 

中,字符和字节一 羊,也就是说, 

共有256种不同字符的可能 

性。同时这也说明PHP对Unicode 

没有本地支持。可参阅函数 

utfS

_

encode0和utf8_decode0以 

了解有关Unicode支持。—个字 

符串变得非常巨大也没有问题, 

PH 给字符串的大/J、强加实 

现范围,所以完全宅 自理由担心 

长字符串。 

指定一个简单字符串的最 

简单的方法是用单引号括起 

来,同样的也可以使用双引号| 

只不过PHP解释器对单引号 

中的PHP变量不进行解析。 

6.数组 

PHP中的数组实际上是一 

个有序图。图是一种把values 

映射到keys的类型。由于此类 

型在很多方面做了优化,因此 

可以把它当成真正的数组来使 

用,或者列表(矢量)、散列表、 

字典、集合、栈、队列,以及更 

多可能性。因为可以用另一个 

PHP数组作为值,也可以很容 

易地模拟树。 

用array()语言结构可以新 

建一个array。它接受一定数 

量、用逗号分隔的“key=> 

value”参数对。 

<?php 

’, 

7.对象 

PHP还支持对象类型。要 

初始化一个对象,用new语句 

将对象实例到一个变量中。 

<?php 

classfoo 

{ 

function doJoo() 

{ 

echo”do something"; 

' 

¥bar=newfoo; 

¥bar->do_fooO; 

?' 

8.资源 

保 

存了到夕陪 餐源的—个引用。资源 

是通过专门的函数来建立和使用 

的。资源类型是 4引进的。 

9.NULL 

特殊的NULL值表示一个 

变量没有值,NULL类型惟一 

可能的值就是N U L L,它是 

PHP 4引进的。在下列情况下 

个变量被认为是NULL: 

◆被赋值为NULL; 

◆尚未被赋值; 

◆被unset0。 

维普资讯

歼放系统}}=l= 

变量 

1.基础 

符(名字),如同其名称所暗示 或者动态加载后,或者在编译 

的,在脚本执行期间该值不能 时已经包括进去了。 

改变。常量默认为大小写敏 

PHP中一个美元符号(即 

感,按照惯例常量标识符总是 

“¥”)后面跟上一个变量名称表 大写的,可以用define()函数 

运算符 

示一个变量。变量的名称对大 

来定义常量。一个常量一旦被 1.算术运算符 

小写敏感。 

定义,就不能再改变或者取消 

算术运算符见表1所示, 

定义。常量只能包含标量数据 除号(“/”)总是返回浮点数, 

2.预定义变量 

(boolean、integer、float和 

即使两个运算数是整数(或 

PHP提供了大量的预定义 string)。 

变量。由于许多变量依赖于运行 

由字符串转换成的整数)也 

通过指定其名字可取得常 

是这样。 

的服务器的版本和设置,以及其 量的值,不能在常量前面加上 

它因素,所以并没有详细的说明 

“¥”符号。如果常量名是动态 

2.赋僵运算符 

文档。一些预定义变量 ̄ ̄PHP以 的,则可以用函数constant()来 

基本的赋值运算符是 

“一

命令行形式运行时并不生效。 

3.变量范围 

变量的范围即它定义的上 

下文背景。大部分的PHP变量 

读取常量的值。用get_defined_ 

它实际上意味着把右边 

constants()可以获得所有已定 

表达式的值赋给左运算数。 

义的常量列表。 

常量和变量有所不同: 

常量前没有¥符号I常量只 

3.位运算符 

位运算符见表2所示。 

只有一个单独的范围。这个单 能用deftne()定义,而不能 

独的范围跨度同样包含了in— 通过赋值语句;常量不用理会 

4.比较运算符 

clude和require引入的文件。 

变量范围的规则,而在任何地 比较运算符见表3所示。 

另外一个条件运算符是 但是,在用户自定义函数中, 方定义和访问。常量一旦定义 

”运算符,它和C及很多 

个局部函数范围将被引入。 就不能被重新定义或者取消定 

“?:

其它语言的操作一样。 任何函数内部的变量按缺省情 义;常量的值只能是标量。 

况将限制在局部函数范围内。 

2.预定义常量 

5.错误控制运算符 

PHP支持错误控制运算符 

常量 

1.语法 

PHP提供了大量的预定义 

常量,不过很多常量都是由不 

@。当将其放置在一个PHP表 

同的扩展库定义的,只有在加 

达式之前,该表达式可能产生 

的任何错误信息都被忽略。 

如果激活了track errors 

常量是一个简单值的标识 载了这些扩展库时才会出现, 

裹1算术运算符 特性,则表达式所产生的任何 

错误信息都被存放在变量 

¥php

errormsg中,此变量在 

_

每次出错时都会被覆盖。 

6.执行运算符 

PHP支持一个执行运算符 

nR 

2006 

O8 

OPEN SOURCE

VV0RLD M0NTHL-Y 93 

u 

维普资讯

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 

责编/国晓平gxp@ccu.com.cn美编/庆琨 

表2位运算符 

例子 称 结果 

¥a&¥b And(按位与) 将在¥a和¥b中都为1的位设为1。 

¥a I¥b --or(按位或) 

¥a^¥b 

将在Sa或Sb中为1的位设为16 

将在¥a和¥b中不同的位设为1。 Xor(按位异或) 

¥a Not(按t菠爿仁) 将¥a中为0的位设为1,反之亦然。 

将¥a中的位向左移动¥b次(每一次移动都表示“乘以2”)。 ¥a《《¥b Shiftleft (左移) 

¥a>>¥b Sh dght(右移) 将Sa中的位向右移动¥b次(每一次移动都表示“除以2”)。 

例子 

¥a==¥b 

名称 

等于 

结果 

TRUE,如果 ¥a等于¥b。 

Sa===¥b 全等 TRUE,如果¥a等于¥b,并且它们的类型也相同(只有PHP 4)。 

¥a!=¥b 

Sa<>¥b 

不等 ; 

不等 

TRUE,如果¥a不等于¥b。 

TRUE,如果¥a不等于¥b。 

¥a!==¥b 非全等 TRUE,如果Sa不等于Sb,或者它们的类型不同(只有PHP 4)。 

¥a<Sb 

¥a>Sb 

小与 

大于 

TRUE,如果¥a严格小于¥b。 

TRUE,如果Sa严格¥b。 

¥a<=¥b 

Sa>=¥b 

小于等于 

大于等于 

TRUE,如果¥a小于或等于¥b。 

TRUE,如果¥a大于或等于Sbo 

8.逻辑运算符 

逻辑运算符见表5所示。 

11.数组运算符 

PHP仅有一个数组运算符 

“+”运算符,它把右边的数组附 

“反引号”。注意,这不是单引 

号!PHP将尝试将反引号中 

的内容作为外壳命令来执行, 

并将其输出信息返回。使用反 9.运算符优先级 

引号运算符的效果与函数 

shell

exec0相同。 

_

运算符优先级见表6所示。 加到左边的数组后,但是重复 

的键值不会被覆盖。 

注意,反引号运算符在激 1 0.字符串运算符 

活了安全模式,或者关闭了 

shell

exec0时是无效的。 

_

字符串运算符有两个,第一 

个是连接运算符“.”,它返回其 

左右参数连接后的字符串。第二 1.分支 

流程控制 

7.加/减运算符 个是连接赋值运算符“.一,它将 有如下3种分支语句: 

加/减运算符见表4所示。 右边参数附加到左边的参数后。 

if(express)<) 

if(eXP res¥){ )eISeif 

表4加/减运算符 

名称 

前加 

后加 

(express){ Ise{) 

效果 

switch() 

2.循环 

类似于C语言,PHP也有 

三种循环语句: 

¥a的值加一,然后返回¥a0 

返回¥a,然后将¥寰的值加一。 

\。 返回¥a’ 然后将¥a的值减一。 _ 

¥a 

} 

蔑 |■ 鬈 ¥a的值减_,一然后返回¥a。 套; 

居减 ¥a一 

94拜放系统 界2oo6

o8 

维普资讯

放系统j_il=界 

表5逻辑运算符 

台嘲子 名称 效果 

Sa and¥b And(逻辑与) TFlu E’如桑¥a与¥b都为TRUE 

Sa or¥b or(逻辑或) TRUE,如果¥a或¥b任一为TRUE。 

Sa xorSb Xor(逻辑异或) TRUE,如果Sa或Sb任一为TRUE,但不同时 

!Sa Not(逻辑非) TRUE,如果Sa不为TRUE。 

Sa占&釉 | 辑与、 TRUE; 弧幕 与 掷为TRUE0 

Sa H¥b j. 一o 逻攀 TRUEi如.果¥a或¥b任 为RUE ̄“ 

while(express){) 

像,这只是一种遍历数组简便 

4.break和continue 

do{}while(express); 

方法。foreach仅能用于数组, bmak ̄束当前for、foreach、 

for(::){)一 

当试图将其用于其它数据类型 

while、do。。while或switch ̄构的 

或一个未初始化的变量时会产 执行。它可以接受一个可选的数 

3.foreach 

生错误。有两种语法,第二种 

字参数来决定跳出几重循环。 

PHP 4中包括了foreach 不太重要,但却是第一种的有 continue在循环结构用来 

结构,它和Ped及其他语言很 

用的扩展。 

跳过本次循环中剩余的代码, 

并开始执行下一次循环。它可 

表6运算符优先级 

以接受一个可选的数字参数 

结合方向 运算符 

来决定跳过几重循环到结尾。 

左 

j皇 。 Of 

5.return 

琶 Xor 

如果在一个函数中调用, 

左 一 And ・ 

则return()语句立即结束此函 

右 ! Print 

数的执行,并将它的参数作为 

奄 ;+= ,=, .=%=&=l= =~ <<-->>-- 

函数的值返回。return()会终止 

卺 : 

eval0语句或脚本文件的执行。 

左 

如果在全局范围中调用, 

左 &&  :

则当前脚本文件中止运行。如 

左 I 

果当前脚本文件是被include() 

左 A 。 

或require()的,则控制交回调 

左 & 

用文件。此外,如果当前脚本 

免 _l= !====l== 是被include()的,则return()的 

j 《《=》》= 

值会被当作include()调用的返 

左 《《》》 

回值。如果在主脚本文件中调 

王 +一. 一 - l l

用return(),则脚本中止运行。 

左 , s% 

如果当前脚本文件是在php.ini 

右 t 一++一(int)(lfoat)(string)(array)(object)@ 

中的配置选项auto_prepend_ 

右 ifle,或者auto append file所指 

无 new l 、一 (下转第96页) 

200 6 

nR 

08 

OPEN SOURCE WORLD MONTHLY 95

维普资讯

知识 

nowIedge CIassr0om.黉掌……………………………… 

责编/国晓平gxp@ccu.com.cn美编/庆琨 

技术讲座 

麓蕞t 疆: 

支持S.M.A.R.T技术的硬盘可以通过硬盘上的监测指令和主机监测软件,随时监测磁 

头,盘片,马达、电路等运行情况。做好网络设备使用情况的实时监控对于了解端口流量 

状况也非常重要。 

做好L i n u x硬件实时监控(三) 

存储设备、网络设备监控 

一曹江华 

T技术则可以避免这个事情的 

T技术的硬盘可以通过硬盘上 

发生。 的监测指令和主机上的监测软 

件,对磁头,盘片,马达、电 

硬盘物理坏道是Linux硬 

件故障中最让人头痛的,它轻 1.S.M_A.R.T简介 

则使计算机频频死机,重则让 

路的运行情况、历史记录及预 

S.M.A.R.T即自我监测、分 设的安全值进行分析,比较,当 

所有数据丢失,采用S.M.A-R. 析及报告技术。支持S.M.A_R. 出现安全值范围以外的情况 

(上接第95页) 

数值。可变长度参数列表仅在 

义函数”错误。例如,要使用诸 

定的,则此脚本文件中止运行。 

PHP 4和后续版本中支持。 

如imagecreatetruecolor()的“图 

返回值通过使用可选的返 

像函数”,就需要在编译PHP的 

6.require()和include() 回语句返回,任何类型都可以 时候加上GD的支持。另外,还 

有一些核心函数,例如“字符串 

函数”和“变量函数”,它们存在 

于每一个版本的PHP中。 

require()和include()语句 

返回。 

包括并运行指定文件,它们结 

构除了处理失败不同,其他完 

<?php 

functionfoo《¥arg_l,¥arg_2,…, 

全一样。include()产生一个警 

¥a峭一n) 

告,而require()则导致一个致 

命错误。换句话说,如果想在 

遇到丢失文件时停止处理页 

{ 

echo”Example unctfIon.、n 

小结 

retum¥retval; 

这一讲主要介绍了PHP语 

法基础,它是学习编写PHP程 

序的基础,包括基本语法、类 

型、变量和常量的声明、运算 

面,就用require()。同时要确 

认设置了合适的include_path。 

函数 

1.用户自定义函数 

2.内部(内建)函数 符、流程控制和PHP中的函数。 

PHP有很多标准的函数和 从下一讲开始,我们以一个典 

结构,还有一些函数需要和特定 

型的电子商务网站的建设为 

PHP支持按值传递参数 的PHP扩展模块一起编译,否则 例,从简单到复杂,逐步介绍 

(默认),通过引用传递和默认参 使用时会得到一个致命的“未定 如何使用PHP语言。 

96盯放系统}陡猝2006

08 


本文标签: 运算符 变量 常量