PHP基本语法大全.docx
PHP基本语法详解您无法在浏览器中通过查看源文档的方式来查看PHP的源代码-您只能看到PHP文件的输出,即纯粹的HTM1o这是因为在结果返回浏览器之前,脚本就已经在服务器执行了。PHP标记在之前的的例子中的PHP代码是以“<?php”为开始,“?>”为结束,这类似于所有的HTM1标记,因为它们都是以小于号为开始,以大于号为结束的。这些符号就叫做PHP标记。PHP标记中有4中不同的风格供我们使用XM1风格<?php?>这是我们以后将使用的标记风格。他是PHP推荐使用的标记风格,服务器管理员不能禁用这种风格的标记,因此可以保证正在所有的服务器上使用这种风格的标记,特别是编写用于不同服务器环境的应用程序时,这种标记风格尤为重要。这种风格的标记可以在XM1(可扩展置标语言)文档中使用,如果打算在站点中使用XM1,就必须使用这种风格的标记。*简短风格<?>这种标记风格是最简单的,但要使用这种标记字符,必须在配置文件中启用short_open_tag选项,或者启用短标记选项编译PHP.我们不推荐使用这种标记,因为虽然该标记风格是当前默认启用的,但是系统管理员偶尔会禁用它,它会干扰XM1文档的声明。SCRIPT风格这种标记风格是最长的,使用过javascript或Vbscript的人就会熟悉这种风格<script1anguage="php”>echo(“这是类似JavaScript及VBSCriPt语法的PHP语言嵌入范例,指定脚本语言的方式”);<script>*ASP风格这种标记风格和ASP或ASP.NET的标记风格相同。如果在配置文件中启用了asp.tags选项就可以使用它<%echo("ASP的风格的标记”);%>PHP输出语句有两种通过PHP来输出文本的基础指令:echo和printo在上面的例子中,我们使用Techo语句来输出文本"He11oWor1d"oPHP注释对于阅读代码的人来说,注释其实就相当于代码的解释和说明。注释可以用来解释脚本的用途,脚本编写人,为什么要按如此的方法编写代码,上一次的修改时间等等,PHP支持C,C+和SHE11脚本风格的注释。单行注释#或多行注释/*/注意:单行注释可以嵌套在多行注释里使用的但是多行注释是无法在嵌套的<?phpecho这是第一种例子。n;/本例是C+语法的注释/*本例采用多行的注释方式*/echo”这是第两种例子。n;echo”这是第三种例子。n;#本例使用IMXShe11语法注释?>C风格的注释在碰到第一个“时结束。小心不要嵌套C风格的注释,当注释大量代码时,可能犯该错误。<?php/*echo“Thisisatest”;*Thiscommentwi11causeaprob1em*/*/?>PHP数据类型数据类型四种标量类型:boo1ean(布尔型):表达了真值,可以为TRUE或FA1SEo要指定一个布尔值,使用关键字TRUE或FA1SEc两个都不区分大小写。<?php$foo=True;assigntheva1ueTR1toSfoo?>当转换为boo1ean时,以下值被认为是FA1SE: 布尔值FA1SE 整型值0(零) 浮点型值0.0(零) 空白字符串和字符串 没有成员变量的数组 特殊类型NU11(包括尚未设定的变量)注意:T和其它非零值(不论正负)一样,被认为是TRUE! integer(整型)integer为整数型别。在32位的操作系统中,它的有效范围是-2,147,483,648到+2,147,483,647(2,31+符号位)。要使用16进位整数可以在面加Ox。整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(-或者+)0如果用八进制符号,数字前必须加上。(零),用十六进制符号数字前必须加上Ox0<?php$a二1234;/十进制数$a=-123;/个负数$a:0123;/八进制数(等于十进制的83)$a二Ox1A;/十六进制数(等于十进制的26)?> f1oat(也叫浮点数,双精度数或实数)浮点数为浮点数型别。在32位的操作系统中,它的有效范围是1.7E-308到1.7E+308o(自然底数。=2.71828183)<?php$a=1.234;$a=1.23;$a=7E-10;?>string(字符串)即为字符串变量,无论是单一字符或数千字的字符串都是使用这个变量类型。值得注意的是要指定字符串给字符串变量,要在头尾加上双引号(例如:这是字符串)。在要让字符串换行时,可使用溢出字符,也就是反斜线加上指定的符号,若是x加上二位数字,如XxFE即表十六进位字符,详见下表:定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:$s="I'mastudent*;$s=Iamawstudentw当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是:“Whydoesn,t"this"work?”实际上被PHP语法分析器分成三个部分:“Whyc1oesn,t”一一包含一个单引号的双引号串this多余的字符,分析器无法处理work?"一普通字符串上面的这个例子企图在双引号串中包含双引号,而分析器在遇到第二个双引号时便认为字符串结束了。要达到包含引号的目的,必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的前面加上一个反斜杠来告诉PHP:这个引号是字符串的一部分,正确的表示方法是这样:"Whydoesn,t“that"work?”字串可以使用字串连接符(.)来连接,如:$first_name=,;$1ast_name='B'$fu11_name=$first_name.''.$1ast_name;注意:<?$aa=5;echo$aa.*test<br>,?echo"$aatest<br>*;在双引号中,变量名称被变量值替代echo,$aatest<br>>;?>在单引号中,变量名称或其他的文本都会不经修改而发送给浏览器复合类型:arrayobjectarray(数组)array为数组变量,可以是二维、三维或者多维数组,其中的元素也很自由,可以是stringsinteger或者doub1e,甚至是array<>可以用array()语言结构来新建一个array。它接受一定数量用逗号分隔的key=>va1ue参数对。key只能是整数和字符串array(1=>,one>,2=>,two,3=>,three*);$a二array(,one,two,three,);默认下标是从0开始SMyArray1=array("a","b","c","d");一维数组$MyArray2=array("地支"=>array,子","丑","寅",卯"),“生肖=>array(鼠,牛,"虎”,兔),数字=>array(1,2,3,4);二维数组<?php$arr=array(12=>true,"foo"=>"bar”,fa1se);echo$arr"foo;/barecho$arr12;/1?>结果:bar1<?phpSMyArray1二array("a","b","c","d");echo$MyArray11;print_r(SMyArray1);?>结果:b(索引值从0开始)数据类型强制转换:<?php$foo=10;/$fooisaninteger$bar=(boo1)$foo;/$barisaboo1ean?>允许的强制转换有: (int),(integer)-转换成整型 (boo1),(boo1ean)-转换成布尔型 (f1oat),(doub1e),(rea1)-转换成浮点型 (string)-转换成字符串 (array)-转换成数组 (object)-转换成对象强制类型强制转换(参考:PHP手册)PHP中的类型强制转换和C中的非常像:在要转换的变量之前加上用括号括起来的目标类型。允许的强制转换有: (int)z(integer)-转换成整型(boo1)z(boo1ean)-转换成布尔型 (f1oat),(doub1e),(rea1)-转换成浮点型 (string)-转换成字符串 (array)转换成数组 (object)-转换成对象注意在括号内允许有空格和制表符还可以用settype(mixedvar,stringtype)进行强制转换.1 .强制转换为布尔值(boo1)I(boo1ean)要明示地将一个值转换成boo1ean,用(boo1)或者(boo1ean)来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制需要一个boo1ean参数时,该值会被自动转换。当转换为boo1ean时,以下值被认为是FA1SE:布尔值FA1SE整型值0(零)浮点型值0.0(零)空白字符串和字符串“0"没有成员变量的数组没有单元的对象(仅适用于PHP4)特殊类型NU11(包括尚未设定的变量)所有其它值都被认为是TRUE(包括任何资源)。?PhPvar_dump(boo1);var_dump(boo1)1);var_dump(boo1)-2);boo1(true)var_dump(boo1)“foo");boo1(itue)var_dump(boo1)2.3e5);var_dump(boo1)array(12);vardump(boo1)array();boo1(1<sc)vardump(boo1)“fa1se");boo1(true)?>2.强制转换为整形(int)(integer)要明示地将一个值转换为integer,用(int)或(integer)强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要个integer参数时,值会自动转换。还可以通过函数intva1()来将一个值转换成整型。a.从boo1转换b.从浮点数转换取整,超出范围,结果不定c.从字符串转换参看字符串转换为数值d.从其它类型转换先换成boo1值,再转换决不要将未知的分数强制转换为integer,这样有时会导致意外的结果。<?phpecho(int)(0.1+0.7)*10);/显示7?>$str="123.456abc7"/(int)123echo(int)$str;$str="abc123.456"/(int)0$str=true;/(int)1$str=fa1se;/(int)O布尔值TRUE将被转换为字符串1",而值FA1SE将被表示为“"(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。数组将被转换成字符串"Array",因此无法通过echo()或者