没有合适的资源?快使用搜索试试~ 我知道了~
PHP学习手册(入门必看)Word版
5星 · 超过95%的资源 需积分: 10 7 下载量 176 浏览量
2013-05-23
00:30:37
上传
评论 2
收藏 823KB DOC 举报
温馨提示
试读
48页
PHP学习手册,程序员入门最好的手册!适合于新入门的和高手用作复习功课之用
资源推荐
资源详情
资源评论
PHP 5 手册
章 5. 基本语法
目录
从 中分离
指令分隔符
注 释
学 习
从 HTML 中分离
的脚本由文件中一对特殊的标记所引起的内容,当
解释器分析一个文件时,所有特殊标记外的普通文件,
解释器不对其做任何处理,而特殊标记内文件将作为
代码被解释器分析执行。该运行机制将允许您在
中嵌入代码:标记外的内容将被完全独
立开,不做任何处理,而内部的将作为代码解析。
用来标记代码块的标记共有四套,其中只有两套总
是 有 效 ( 和
);另外两套可以在 配置文件中开启
或者关闭。虽然短格式的标记和风格的标记可能比
较省力,但是某些情况下您可能必须要使用长格式的标
记。比如,您打算在 或者 中嵌入代
码,您将需要使用形式的标记以适应
的标准。
支持的标记为:
例子 5-1. 从 HTML 中分离的方式
!"#
$%&
'!
()*#$%&
+,&
,&
-!**+&
!"./*$
0
!"*$%
1&
234!!
5(/6!*$%3&
3+78!%9
33&
优先选用的方式为第一种方式,因为它允许
您在 结构,如 的代码中使用。
第二种方式并非总是可用的。只有当您在配置文
件中激活!"!"选项,才是可用的。您也可以
通过使用!"#$函数(仅用于%),或者使用
&&'&!&选项!(来激活短格式标记。
在&)配置文件中,默认是开启短格式标记的,
但是建议您不要使用该标记。
在配置文件中开启选项"将激活第四种方式。
注*风格的标记添加于%+,
注*当开发大型应用程序或者用于分发的函数库,或者在
不受您控制的服务器上面开发程序时,请不要使用
短格式的标记,因为目标服务器可能并不支持短格式的
标记。为了便于移植,请保证用于再分发的代码中不使
用短格式的标记。
代码块结束标记奖自动包含最近的一个结尾的新行
(如果存在的话)。而且,结束标记自动隐含一个分号-
您不需要为代码块的最后行追加一个分号。
允 许 您 使 用 如 下 的 结 构 :
学习
例子 5-2. 更高级的脱离
7,$:
&
*&1*&
;!:
&
*&!1*&
;
&
将直接输出结束标记和下一个开始标记中的任何非
代码。当需要输出大量的文本时,退出解析模
式将比使用!#$或者#$或者此类的函数打印所有
文本要更加的有效。
指令分隔符
指令分隔方式与.或者类似&&每个语句由分号格开。
结束标记()同样隐含语句的结束,因此下面的代码
是等价的:
%
&
&
注释
支持/./,/.00/和12风格的注释。例如*
%116!
<<!
1=!!
!=1
%
> .! % 9 !!6
!!
&
?单行”注释仅仅注释到行末或者当前的 //代码
块,视乎哪个首先出现。
&9!%&
,!1&
&8!!0
,!0
小心不要嵌套 0@0风格的注释,当注释大量代码
时,可能犯该错误。
1=
% 1=
!!8!=1
=1
&
?单行”注释仅仅注释到行末或者当前的 //代码
块,视乎哪个首先出现。这意味着 11&后面的
代码将被打印出来:&跳出了 //模式
并且返回 模式,而且 11注释符并不会影
响到模式的转换。
章3类型
目录
介绍
布尔型
整型
浮点型
字符串
数组
对象
资源
41
本文档中使用的伪类型
类型戏法
介绍
支持八种原始类型。
四种标量类型:
布尔型('!!)
整型()
浮点型((!)(浮点数,也作“ )!'5)
字符串()
两种复合类型:
数组(6)
对象(!')
最后是两种特殊类型:
资源(!)
41
为了确保代码的易读性,本手册还介绍了一些伪类型:
混和( 72) )
数字( 7' )
回馈( '8 )
您可能还会读到一些关于“双精度()!')”类型的参考
实际上)!'和(!是相同的,由于一些历史的原因,
这两个名称同时存在。
变量的类型通常不是由程序员设定的,确切地说,是由
根据该变量使用的上下文在运行时决定的。
注 * 如 果 你 想 查 看 某 个 表 达 式 的 值 和 类 型 , 用
9")7#$。
注*如果你只是想得到一个易读懂的类型的表达方式用于
调 试 , 用 6#$ 。 要 查 看 某 个 类 型 , 不 要 用
6#$,而用"6函数。以下是一些范例:
:'!!;1<-==='!!
:==(!!-==
:==>?-=====
!6#:'!!$-!'!!
!6#:$-==!
@(A7'6(!
(#"#:$$B
====:0,-
C
@(:'!!A!
#)!!!6$
(#"#:'!!$$B
====!*:'!!-
C
如果你要将一个变量强制转换为某类型,可以对其使用
强制转换或者6#$函数。
注意变量根据其当时的类型在特定场合下会表现出不同
的值。更多信息见类型戏法。此外,你还可以参考
类型比较表看不同类型相互比较的例子。
布尔型
这是最简单的类型。'!!表达了真值,可以为;1<
或D<。
注*布尔类型是,引进的。
语法
要指定一个布尔值,使用关键字;1<或D<。两个
都是大小写不敏感的。
:(!!-9;1<!:(!!
通常你用某些运算符返回'!!值,并将其传递给流
程控制。
!!
E6)'!!
(#:!!"9!$B
====!9!>?%-
C
!6
(#:!"!;1<$B
====!F-
C
'6!766
(#:!"!$B
====!F-
C
转换为布尔值
要 明 示 地 将 一 个 值 转 换 成 '!! , 用 #'!!$ 或 者
#'!!$来强制转换。但是很多情况下不需要用强制转
换,因为当运算符,函数或者流程控制需要一个'!!
参 数 时 , 该 值 会 被 自 动 转 换 。
学习
参见类型戏法。
当转换为'!!时,以下值被认为是D<:
布尔值D<
整型值+(零)
浮点型值++(零)
空白字符串和字符串+
没有成员变量的数组
没有单元的对象
特殊类型 41(包括尚未设定的变量)
所有其它值都被认为是;1<(包括任何资源)。
警告
&>和其它非零值(不论正负)一样,被认为是;1<!
! 6##'!!$ $-========
'!!#($
! 6##'!!$ >$-=========
'!!#$
! 6##'!!$ &?$-========
'!!#$
! 6##'!!$ (!!$-=====
'!!#$
! 6##'!!$ ?%G$-=====
'!!#$
! 6##'!!$ 6#>?$$-
'!!#$
! 6##'!!$ 6#$$-===
'!!#($
整型
一个是集合HBA&?A&>A+A>A?AC中的一个数。
参见任意长度整数 I ,浮点数和任意精度数学库
J.。
语法
整型值可以用十进制,十六进制或八进制符号指定,前
面可以加上可选的符号(&或者0)。
如果用八进制符号,数字前必须加上+(零),用十六
进制符号数字前必须加上+2。
例子3&>整数文字表达
:>?%,-K十进制数
:&>?%-K一个负数
:+>?%-K八进制数(等于十进制的L%)
:+2>-K十六进制数(等于十进制的?3)
在字面上,整型变量正式的结构可以为:
)7*M>&NOM+&NOP
Q+
2)7*+M2 OM+&N&(&DO0
!*+M+&RO0
*M0&O)7
QM0&O2)7
QM0&O!
整型数的字长和平台有关,尽管通常最大值是大约二十
亿(%?位有符号)。不支持无符号整数。
整数溢出
如果你指定一个数超出了的范围,将会被解释为
(!。同样如果你执行的运算结果超出了范围,
也会返回(!。
:"7'==?>,R,L%3,R-
9")7#:"7'$-
输出为:#?>,R,L%3,R$
:"7'==?>,R,L%3,L-
9")7#:"7'$-
输出为:(!#?>,R,L%3,L$
同样也适用于十六进制表示的整数:
9")7#+2L+++++++$-
输出为:(!#?>,R,L%3,L$
:7!>++++++-
:"7'==G++++P:7!-
9")7#:"7'$-
输出为:(!#G++++++++++$
警告
不幸的是中有个',因此当有负数
参与时结果并不总是正确。例如当运算&
G++++P:7!时结果是&,?N,N3R?L。不
过当两个运算数都是正数时就没问题。
这个问题已经在,>+中解决了。
中没有整除的运算符。>?产生出浮点数+G。您可
以总是舍弃小数部分,或者使用!)#$函数。
9")7#?GR$-=========(!#%GR>,?LGR>,?L3$
9")7##$#?GR$$-#%$
9")7#!)#?GR$$-==(!#,$
转换为整形
要明示地将一个值转换为,用#$或#$强
制转换。不过大多数情况下都不需要强制转换,因为当
运算符,函数或流程控制需要一个参数时,值会
自动转换。您还可以通过函数9#$来将一个值转换成
整型。
参见类型戏法。
从布尔值转换
D<将产生出+(零),;1<将产生出>(壹)。
从浮点数转换
当从浮点数转换成整数时,数字将被取整(丢弃小数
位)。
如 果 浮 点 数 超 出 了 整 数 范 围 ( 通 常 为 0&?>G0N
?S%>),则结果不确定,因为没有足够的精度使浮点数
给出一个确切的整数结果。在此情况下没有警告,甚至
没 有 任 何 通 知 !
学 习
( 译 者 注 : ) 在 2 下 返 回 结 果 是 最 小 负 数 ( &
?>,R,L%3,L ) , 而 在 T)! 下 返 回 结 果 是 零
(+)。
警告
决不要将未知的分数强制转换为,这样有时会导
致意外的结果。
!#$##+>0+R$P>+$-显示R!
更多信息见浮点数精度。
从字符串转换
参见字符串转换为数字。
从其它类型转换
注意
没有定义从其它类型转换为整型的行为。目前的行为和
值先转换为布尔值一样。不过不要依靠此行为,因为它
会未加通知地改变
浮点型
浮点数(也叫“(!5,“ )!'5或“7'5)可以
用以下任何语法定义:
:>?%,-
:>?%-
:R<&>+-
形式上:
41==========M+&NO0
U41==========#M+&NOPMFOB41C$Q#B41CMFOM+&NOP$
< V4<4"U41 # #B41C Q BU41C$ M<OM0&O
B41C$
浮点数的字长和平台相关,尽管通常最大值是>L%+L
并具有>,位十进制数字的精度(3,位@<<<格式)。
浮点数精度
显然简单的十进制分数如同+>或+R不能在不丢失一
点点精度的情况下转换为内部二进制的格式。这就会造
成混乱的结果:例如,(!!##+>0+R$P>+$通常会返回R
而不是预期中的L,因为该结果内部的表示其实是类似
RNNNNNNNNNN。
这和一个事实有关,那就是不可能精确的用有限位数表
达 某 些 十 进 制 分 数 。 例 如 , 十 进 制 的 >% 变 成 了
+%%%%%%%。
所以永远不要相信浮点数结果精确到了最后一位,也永
远不要比较两个浮点数是否相等。如果确实需要更高的
精度,应该使用任意精度数学函数库或者7 函数库 。
转换为浮点数
如果您希望了解有关何时和如何将字符串转换成浮点数
的信息,请查阅标题为“将字符串转换为数字”的有关章
节。对于其它类型的值,其情况类似于先将值转换成整
型,然后再转换成浮点。请参阅“转换为整型”有关章节
以获取更多信息。
字符串
是一系列字符。在中,字符和字节一样,也
就是说,一共有?G3种不同字符的可能性。这也暗示
对 1!) 没 有 本 地 支 持 。 请 参 阅 函 数
(L"!)#$和(L")!)#$以了解有关1!)支持。
注*一个字符串变得非常巨大也没有问题,没有给字
符串的大小强加实现范围,所以完全没有理由担心长字
符串。
语法
字符串可以用三种字面上的方法定义。
单引号
双引号
定界符
单引号
指定一个简单字符串的最简单的方法是用单引号(字符
/)括起来。
要表示一个单引号,需要用反斜线(F)转义,和很多其
它语言一样。如果在单引号之前或字符串结尾需要出现
一个反斜线,需要用两个反斜线表示。注意如果你试图
转义任何其它字符,反斜线本身也会被显示出来!所以
通常不需要转义反斜线本身。
注*在%中,此情况下将发出一个<"4V@.<级的
警告。
注*和其他两种语法不同,单引号字符串中出现的变量和
转义序列不会被变量的值替代。
!/7/-
!/W!!97')))
6
!86!)!/-
V*!)!)*@/''8
!/!)!)*@F/''8/-
V*W!)).*FPP
!/W!)).*FFPP/-
V*W!)).*FPP
!/W!)).*FPP/-
V*!2)*F
!/!2)*F/-
V*X')!!:2):
!/X')!!:2):/-
双引号
如果用双引号()括起字符串,懂得更多特殊字符
的转义序列:
表格3&>转义字符
序列 含义
F
换 行 ( D 或 .@@ 字 符
+2+(>+))
F
回 车 ( .; 或 .@@ 字 符
+2+U(>%))
F
水 平 制 表 符 ( 或 .@@ 字 符
+2+N(N))
FF 反斜线
F: 美元符号
F 双引号
FM+&ROB>A%C
此正则表达式序列匹配一个用八进制
符号表示的字符
F2M+&N&D&(OB>A?C
此正则表达式序列匹配一个用十六进
制符号表示的字符
此外,如果试图转义任何其它字符,反斜线本身也会被
显示出来!
双引号字符串最重要的一点是其中的变量名会被变量值
替代。细节参见字符串解析。
定界符
另一种给字符串定界的方法使用定界符语法(“5)。
应该在之后提供一个标识符,然后是字符串,然后
是同样的标识符结束字符串。
结束标识符必须从行的第一列开始。同样,标识符也必
须遵循中其它任何标签的命名规则:只能包含字母
数字下划线,而且必须以下划线或非数字字符开始。
警告
很重要的一点必须指出,结束标识符所在的行不能包含
任何其它字符,可能除了一个分号(-)之外。这尤其意
味着该标识符不能被缩进,而且在分号之前和之后都不
能有任何空格或制表符。同样重要的是要意识到在结束
标识符之前的第一个字符必须是你的操作系统中定义的
换行符。例如在!系统中是F。
如果破坏了这条规则使得结束标识符不“干净”,则它不
会被视为结束标识符,将继续寻找下去。如果在这
剩余47页未读,继续阅读
资源评论
- qya3652014-01-10有心人整理的资料,很实用。
zygzyp
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功