发表于2024-11-19
书名: | PHP入门很简单(含光盘) | ||
作者: | 涂文家 | 开本: | |
YJ: | 69 | 页数: | |
现价: | 见1;CY=CY部 | 出版时间 | 2014-09-01 |
书号: | 9787302355649 | 印刷时间: | |
出版社: | 清华大学出版社 | 版次: | |
商品类型: | 正版图书 | 印次: |
D3章动手写D一个PHP脚本
所谓PHP脚本,其实J是一串指令,告诉PHP处理引擎应该完成什么动作。理论上来说,PHP脚本可以只包含一条命令,也可以包含成千上万条命令,这WQ取决于读者的需要。对于一个PHP脚本来说,PHP处理引擎是按照从上到下、从左到右的顺序一条一条处理的,直到引擎指针指向脚本的Z后一行命令。
那么,我们可以用PHP脚本做些什么事情呢?按照本书1.2节中的说法,我们可以编写PHP脚本实现在特定的网页显示特定的内容、将用户在表单中填写的内容存入数据库、将某目录中的文件备份到指定的存储设备上。PHP几乎无所不能,只要读者肯下功夫,学习PHP是一件十分简单并且充满乐趣的事。
在本章里,我们将要动手写下D一个PHP脚本。
3.1何谓PHP命令
按照表现形式的不同,PHP命令可以分为简单命令和复杂命令两种。如何判断一条命令是简单还是复杂呢?
3.1.1简单命令
每条简单的PHP命令都在告诉PHP处理引擎执行一个动作。Z常见的PHP命令J是echo命令,它的功能是显示和输出信息。在D1章里,我们J已经见过这条命令了。
现在再来详细地看一下这个命令。
【例3.1】echo命令。
1echo"Hi";
在这条命令中,有三个部分组成。它们分别是命令关键字echo、命令对象Hi和行结束符(;)。DPHP处理引擎读到这条命令时,它1先会看到这条命令的关键字,通过关键字了解命令要求完成的动作;然后再读取命令的对象,并按照命令关键字的要求完成对对象的处理;Z后引擎会读取行结束符来结束对这条命令的执行。
刚才说到,echo命令的功能是显示和输出信息,那么DPHP处理引擎读到这条命令时,J会输出一个简单的字符串“Hi”。
这个例子十分好懂,也没有什么好讲的。不过有的同学可能对行结束符产生了兴趣。
行结束符和平常Word文档里的回车符有什么本质上的区别么?为了讲清楚这个问题,再来看几条命令。
【例3.2】行结束符。
1echo"Great!
2IhopeIcanfinallygetthere!";
3
4echo"Great!";echo"Welldone!";
看到这里,有的同学可能J不淡定了:这到底算是三条命令还是两条命令呢?嗯,这个问题问得好。其实答案也很简单,那J是只有D行结束符出现的时候,一条命令才算结束,无论一条命令被切成了几段写在了几行里。同理,若干条简单命令只有行结束符齐全,也可以挤在一行里抱团取暖,J像例3.2中的D4行一样。即便如此,还是建议大家一行只写一条简单命令,这样在后期进行错误定位的时候会好过得多。
PHP引擎其实无从知晓代码的内容,它只知道寻找行结束符。在两个行结束符之间的内容J会被PHP引擎D成一条命令加以执行。于是上面这条命令的结果J是另一个简单的字符串“Great!IhopeIcanfinallygetthere!”。
好奇的同学可能又要问了:如果在一个脚本里一个行结束符都没有的话,是不是所有的代码J会一起执行呢?答案是肯定的,但是你却看不到你想要的结果,看到的只是如下的一条报错信息:
Parseerror:expecting","or";"infile.phponline6
在报错信息中,你会看到出错的文件名和具体的行号,以及可能解决问题的办法。通常情况下,在每一条命令结尾处加上一个分号J能解决这个问题。
对于一个只有几条命令组成的PHP脚本文件来说,定位错误是十分容易的一件事情。
但是通常情况下,一个PHP脚本怎么着也得有个上百条命令。因此选用一款可以显示行号的编辑器J成了一个明智的选择。否则,你J只能从上往下一条一条地数了。
3.1.2复杂命令
把若干条简单命令放到一对花括号里,这些命令J组成了一个复杂命令。一个复杂命令通常包含若干条简单命令,甚至还会嵌套一些复杂命令。Z常见的复杂命令块J是条件命令,只有满足特定条件时,花括号中的简单命令才会被执行,如例3.3所示。
【例3.3】If条件命令。
1if(timeisinthemorning)
2{
3getup;
4brushmyteeth;
5washmyface;
6putonmyjacket;
7gotowork;
8}
在上面这个例子里只出现了一对花括号。这对花括号中包含了5条简单命令。这个例子可以做如下的解读:
早晨,我起床后会先刷牙,再洗脸,然后穿上我的夹克出门上班。
在这句简单的描述中,我们可以发现作为条件的时间是早晨。也J是说只有早晨,我才会做如下的动作:起床、刷牙、洗脸、穿衣和出门上班。于是,需要把条件写在花括号外的if子句中,然后把D条件满足时需要完成的动作依次写在花括号内,从而完成一个复杂的条件命令。
对于一条复杂命令来说,PHP会一次性读取这条复杂命令所有的内容。值得注意的是,花括号后面是不需要加行结束符(;)的。
另外,大家还要注意务必让花括号内的每条语句都缩进若干字符并使它们保持左对齐。这个要求并不是必须的。但是,如果你和其他的同事都在编辑同一个PHP脚本,为了他人阅读的方便还是建议大家照做
3.2如何写代码
D1章里提到动态网页这个概念。为了使网页“动”起来,J得在HTML代码中插入PHP脚本,然后将这些内嵌PHP脚本的HTML文件保存为扩展名为.php的文件。如此一来,PHP处理引擎才会处理文件中的PHP脚本。本节将讨论一个PHP脚本应该包括的元素。
3.2.1PHP标记对
只有DPHP脚本被插入扩展名为.php的HTML文件中时,PHP引擎才会处理这些脚本。那么应该把这些脚本插入到HTML文件中的什么地方呢?先来看例3.4中的代码。【例3.4】PHP标记对。
12…
3PHPstatements
4…
5?>
所有的PHP脚本都应该被包含在如例3.4所示的标记对中。读者也可以使用““?>”来标记一个PHP脚本的起止。前提是修改了php.ini文件中关于启用短标记对的相关内容。
一般来说,使用短标记并不是一个好主意。如果把使用短标记对的HTML文件转移到一台没有启用短标记对的服务器上,那么所有的PHP脚本都会失效。尤其是对于租用服务器的开发者来说,这样做的后果是致命的,因为大多数供应商并不允许修改php.ini文件。这样一来,编码时少敲几个字母的代价也忒大了些。所以还是建议大家尽量使用完整的PHP标记对。
D1章的结尾曾经提到:如果用户通过浏览器发出访问请求,PHP标记对间的所有PHP脚本都会被送到PHP处理引擎进行处理。然后服务器将经过处理的页面下发到发出请求的浏览器。该页面中所有的PHP脚本都已经被替换成了相应的处理结果。在浏览器里通过查看源代码的方式是无法看到任何PHP脚本的。
例如,读者可以在HTML代码中加入如例3.5所示的PHP脚本,然后将HTML代码
保存为一个PHP文件。
【例3.5】PHP脚本。
12echo"ThislineisbroughttoyoubyPHP.";
3?>
D用户请求该页面时,服务器会先查看文件的扩展名。D服务器发现该文件是一个PHP文件时,安装在服务器上的PHP处理引擎J会检查该文件里的PHP标记对、执行标记对中的脚本、并输出相应的结果。在本例中,服务器上的PHP处理引擎会执行PHP标记对中的echo命令,并输出处理结果,也J是“ThislineisbroughttoyoubyPHP”这句话。
D执行完文件中应该执行的所有脚本后,服务器会用脚本的执行结果替换相应的脚本,然后将处理后的HTML文件下发到用户的浏览器中。用户J能看到上面那句话了。
3.2.2注释脚本
看到这一节的标题,有的同学会问:为什么要注释脚本呢?
注释对于脚本来说十分重要。通常情况下,我们会使用注释来描述代码,告诉阅读脚本的人某一段代码可以实现的功能以及该功能是如何实现的。D脚本十分复杂,让人无法很快读懂时,注释J显得尤为重要了。但是如果代码只有自己一个人在维护,那么是不是J不用注释了?自己写的代码难道自己还看不懂吗?对于这个问题,我只能用一句俗语来回答:“好记性不如烂笔头。”既然我们可以很方便地在脚本旁边注明一下某段脚本的功能,为什么不呢。更何况,脚本会变得越来越复杂,总有YT会需要很多的人来一起维护。写上注释J可以避免出现代码无法维护的情况,提高代码的利用效率。
所谓注释,其实J是写在脚本旁边用于说明代码的一段文字。PHP处理引擎在碰到注释时会直接忽略。也J是说,注释一定是给人看的,那么写注释的时候言简意赅J显得十分必要了。那么PHP处理引擎如何区别脚本和注释呢?还是通过一个例子来说明一下。
【例3.6】注释示例。
1/*在这儿写注释
2在这儿写更多的注释*/
在例3.6中,我们看到了如下的两个符号:“/*”和“*/”,这样的注释标记称为长注释标记。PHP处理引擎在看到这一对符号时,J会直接忽略它们之间的所有内容。大家可以在开始写脚本之前,在开头的地方注释一段,写一写脚本的名字、描述、作者信息和写作时间等信息,以后查找起来也会FC方便。例3.7J是一段脚本说明。
【例3.7】脚本说明。
1/*name:hello.php
2description:Displays"HelloWorld!"onawebpage.
3writtenby:JoeProgrammer
4createdon:Feb1st,2012
5modifiedon:Mar15th,2012
6*/
值得注意的是,长注释标记不支持嵌套。也J是说,如果出现了如例3.8这样的注释标记,PHP会报错。
【例3.8】错误的注释嵌套。
PHP入门很简单(含光盘) 下载 mobi pdf epub txt 电子书 格式 2024
PHP入门很简单(含光盘) 下载 mobi epub pdf 电子书PHP入门很简单(含光盘) mobi epub pdf txt 电子书 格式下载 2024