PHP学习手册入门必看Word版.docx
《PHP学习手册入门必看Word版.docx》由会员分享,可在线阅读,更多相关《PHP学习手册入门必看Word版.docx(109页珍藏版)》请在冰豆网上搜索。
PHP学习手册入门必看Word版
PHP5手册
章5.基本语法
目录
从HTML中分离
指令分隔符
注释php学习
从HTML中分离
PHP的脚本由文件中一对特殊的标记所引起的内容,当解释器分析一个文件时,所有特殊标记外的普通文件,解释器不对其做任何处理,而特殊标记内文件将作为PHP代码被解释器分析执行。
该运行机制将允许您在HTML中嵌入PHP代码:
PHP标记外的内容将被完全独立开,不做任何处理,而内部的将作为PHP代码解析。
用来标记PHP代码块的标记共有四套,其中只有两套总是有效(
php...?
>和...);另外两套可以在php.ini配置文件中开启或者关闭。
虽然短格式的标记和ASP风格的标记可能比较省力,但是某些情况下您可能必须要使用长格式的标记。
比如,您打算在XML或者XHTML中嵌入PHP代码,您将需要使用
php...?
>形式的标记以适应XML的标准。
PHP支持的标记为:
例子5-1.从HTML中分离的方式
1.
phpecho("ifyouwanttoserveXHTMLorXMLdocuments,dolikethis\n");?
>
2.
echo("thisisthesimplest,anSGMLprocessinginstruction\n");?
>
=expression?
>Thisisashortcutfor"
echoexpression?
>"
3.
echo("someeditors(likeFrontPage)don't
likeprocessinginstructions");
4. <%echo("YoumayoptionallyuseASP-styletags");%>
<%=$variable;#Thisisashortcutfor"<%echo..."%>
优先选用的方式为第一种方式
php...?
>,因为它允许您在XML结构,如XHTML的代码中使用PHP。
第二种方式并非总是可用的。
只有当您在php.ini配置文件中激活short_open_tag选项,才是可用的。
您也可以通过使用short_tags()函数(仅用于PHP3),或者使用--enable-short-tags选项configurePHP来激活短格式标记。
在php.ini-dist配置文件中,默认是开启短格式标记的,但是建议您不要使用该标记。
在PHP配置文件中开启选项asp_tags将激活第四种方式。
注:
ASP风格的标记添加于PHP3.0.4
注:
当开发大型应用程序或者用于分发的函数库,或者在不受您控制的PHP服务器上面开发程序时,请不要使用短格式的标记,因为目标服务器可能并不支持短格式的标记。
为了便于移植,请保证用于再分发的代码中不使用短格式的标记。
PHP代码块结束标记奖自动包含最近的一个结尾的新行(如果存在的话)。
而且,结束标记自动隐含一个分号;您不需要为PHP代码块的最后行追加一个分号。
PHP允许您使用如下的结构:
php学习
例子5-2.更高级的脱离
php
if($expression){
?
>
Thisistrue.
php
}else{
?
>
Thisisfalse.
php
}
?
>
PHP将直接输出结束标记和下一个开始标记中的任何非PHP代码。
当需要输出大量的文本时,退出PHP解析模式将比使用echo()或者print()或者此类的函数打印所有文本要更加的有效。
指令分隔符
指令分隔方式与C或者Perl类似--每个语句由分号格开。
结束标记(?
>)同样隐含语句的结束,因此下面的代码是等价的:
php
echo"Thisisatest";
?
>
phpecho"Thisisatest"?
>
注释
PHP支持'C','C++'和UnixShell风格的注释。
例如:
php
echo"Thisisatest";//Thisisaone-linec++stylecomment
/*Thisisamultilinecomment
yetanotherlineofcomment*/
echo"Thisisyetanothertest";
echo"OneFinalTest";#Thisisshell-stylestylecomment
?
>
“单行”注释仅仅注释到行末或者当前的PHP代码块,视乎哪个首先出现。
Thisisan
php#echo"simple";?
>example.
Theheaderabovewillsay'Thisisanexample'.
小心不要嵌套'C'风格的注释,当注释大量代码时,可能犯该错误。
php
/*
echo"Thisisatest";/*Thiscommentwillcauseaproblem*/
*/
?
>
“单行”注释仅仅注释到行末或者当前的PHP代码块,视乎哪个首先出现。
这意味着//?
>后面的HTML代码将被打印出来:
?
>跳出了PHP模式并且返回HTML模式,而且//注释符并不会影响到模式的转换。
章6.类型
目录
介绍
布尔型
整型
浮点型
字符串
数组
对象
资源
NULL
本文档中使用的伪类型
类型戏法
介绍
PHP支持八种原始类型。
四种标量类型:
布尔型(boolean)
整型(integer)
浮点型(float)(浮点数,也作“double”)
字符串(string)
两种复合类型:
数组(array)
对象(object)
最后是两种特殊类型:
资源(resource)
NULL
为了确保代码的易读性,本手册还介绍了一些伪类型:
混和(mixed)
数字(number)
回馈(callback)
您可能还会读到一些关于“双精度(double)”类型的参考。
实际上double和float是相同的,由于一些历史的原因,这两个名称同时存在。
变量的类型通常不是由程序员设定的,确切地说,是由PHP根据该变量使用的上下文在运行时决定的。
注:
如果你想查看某个表达式的值和类型,用var_dump()。
注:
如果你只是想得到一个易读懂的类型的表达方式用于调试,用gettype()。
要查看某个类型,不要用gettype(),而用is_type函数。
以下是一些范例:
php
$bool=TRUE; //aboolean
$str ="foo"; //astring
$int =12; //aninteger
echogettype($bool);//printsout"boolean"
echogettype($str); //printsout"string"
//Ifthisisaninteger,incrementitbyfour
if(is_int($int)){
$int+=4;
}
//If$boolisastring,printitout
//(doesnotprintoutanything)
if(is_string($bool)){
echo"String:
$bool";
}
?
>
如果你要将一个变量强制转换为某类型,可以对其使用强制转换或者settype()函数。
注意变量根据其当时的类型在特定场合下会表现出不同的值。
更多信息见类型戏法。
此外,你还可以参考PHP类型比较表看不同类型相互比较的例子。
布尔型
这是最简单的类型。
boolean表达了真值,可以为TRUE或FALSE。
注:
布尔类型是PHP4引进的。
语法
要指定一个布尔值,使用关键字TRUE或FALSE。
两个都是大小写不敏感的。
php
$foo=True;//assignthevalueTRUEto$foo
?
>
通常你用某些运算符返回boolean值,并将其传递给流程控制。
//==isanoperatorwhichtest
//equalityandreturnsaboolean
if($action=="show_version"){
echo"Theversionis1.23";
}
//thisisnotnecessary...
if($show_separators==TRUE){
echo"
\n";
}
//...becauseyoucansimplytype
if($show_separators){
echo"
\n";
}
转换为布尔值
要明示地将一个值转换成boolean,用(bool)或者(boolean)来强制转换。
但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制需要一个boolean参数时,该值会被自动转换。
php学习
参见类型戏法。
当转换为boolean时,以下值被认为是FALSE:
布尔值FALSE
整型值0(零)
浮点型值0.0(零)
空白字符串和字符串"0"
没有成员变量的数组
没有单元的对象
特殊类型NULL(包括尚未设定的变量)
所有其它值都被认为是TRUE(包括任何资源)。
警告
-1和其它非零值(不论正负)一样,被认为是TRUE!
php
echogettype((bool)""); //bool(false)
echogettype((bool)1); //bool(true)
echogettype((bool)-2); //bool(true)
echogettype((bool)"foo"); //bool(true)
echogettype((bool)2.3e5); //bool(true)
echogettype((bool)array(12));//bool(true)
echogettype((bool)array()); //bool(false)
?
>
整型
一个integer是集