英语原文共 26 页,剩余内容已隐藏,支付完成后下载完整资料
PHP基础
PHP是一种服务器端脚本语言,这意味着PHP脚本是在服务器上运行的。PHP脚本的文件扩展名必须为“PHP”。以我教学PHP的经验,对HTML和JavaScript有一个基本了解的学生表现好多了。然而,HTML的知识更重要。
PHP与Oracle的相性极佳。Oracle致力于开发、测试、优化和支持开源PHP等技术的重要资源。实际上,PHP是Oracle的web脚本语言的选择。
PHP文件可以包含文本、HTML标记和脚本。PHP可以在不同的平台上运行,
但是我只有Linux上的语言工作经验。因此,本书基于您在Linux上运行PHP。不过,本书提供的所有PHP脚本应该可以在任何平台运行。
语法
一个PHP文件必须以lsquo;lt; ?phprsquo;开头且以lsquo;? gt;rsquo;结束。为减少疏忽错误,一定要将起始的lsquo;lt; ?phprsquo;标签放在第一行,文件第一列的最左边。同时确保结束的 lsquo;? gt;rsquo; 标签后面没有空格或行。
一个PHP文件通常包含HTML标记和PHP脚本代码。在后面的章节,我加入了SQL PHP和JavaScript文件。PHP中的每段代码行必须以分号“;”结束。要显示文本到一个web浏览器,可以使用两个语句——“echo”和“print”。我更喜欢
使用“echo”,因为它字符更少。PHP的注释包括“/ /”用于单行注释与一对对应的符号“/ *”和“* /”用于一个注释块。PHP文件lsquo;first.phprsquo;包含注释并显示一些文本(图1.31)。文件不包含任何HTML。
我喜欢以一个单行评论作为每个PHP文件的开头,它包含了文件的名称(第2行)。在本例中,文件名为“first.php”。虽然不是必需的,但是我用单行注释每一个PHP文件来标明文件名,避免混淆我在书中建立的多个PHP文件。我用了块注释语法添加多行注释(第3 - 5行)。最后,我用“echo”显示一些简单的文本(第6行)。
变量
变量来存储信息的容器。PHP变量从一个“$”符号开始。其次是变量的名称。变量必须以字母或下划线开头,也只能包含字母数字字符以及下划线。一个变量名不能包含空格。最后,用PHP变量名称是区分大小写的。当你分配一个值的时候就创建一个PHP变量。PHP文件lsquo;variable.phprsquo;显示变量的工作原理。
变量“$username”和“$password”分别用“dave”和“paper”代表(第3、4行)。字符串用了两个“echo”语句来显示(第5、6行)。图1.32展示了通过浏览器加载后的URL的PHP代码的最终显示效果。
小心使用引号,因为单引号和双引号代表不同的“echo”语句。在下一个示例中,是使用单引号而非双引号。
图1.33显示在使用单引号时变量不会被PHP引擎解释(第5、6行)。所以,如果你想要PHP引擎解释变量值,使用双引号。不过,您可以使用单引号或双引号分配字符串为变量。
连接
连接操作符lsquo;.rsquo;用于把两个字符串连接。PHP文件“concatenation.php”使用连接来合并字符串“dave”和“paper”(第5行),请注意在第5行,我在姓和名之间放置一个空格来优化显示的信息(图1.34)。
函数
PHP支持两种类型的函数,内置的和定制的。内置函数提供一个简单的方法调用函数而无需构建您自己的代码。PHP文件“function.php”介绍了三个有用的函数——“strlen()”、“strpos()”,和“substr()”。
strlen()函数返回一个字符串的长度并接受一个参数(字符串)。Strpos()函数在一个字符串中搜索一个字符或文本并接受两个参数(字符串和要搜索的字符串)。substr()函数返回一个字符串的一部分,接受两个或三个参数(字符串,字符串中的起始位置和长度(从字符起始位置开始)。如果长度参数被省略,substring返回的字符串将从起始位置到字符串结束。parameter用于代指引用的一个函数中作为函数输入的数据。parameter也可以叫做argument。
如图1.35所示,“Oracle 12 c”长度为“10”(第6行),且“Oracle”的起始位置是“Oracle 12 c”从“0”开始(第7行),在PHP中,字符串开始序数为 0 而不是 1 。“Oracle 12 c”开始位置“0”的substring是“Oracle 12 c”(第8行)。“Oracle 12 c”开始位置“1”的substring是“racle 12 c”(第9行)。“Oracle 12 c”开始位置“7”长度三个字符的substring是“12 c”(第10行)。“Oracle 12”从“0”位置开始的三个字符是“Ora”(第11行)。最后,“Oracle 12 c”开始的位置“0”而删除末尾四位字符是“Oracle ”(第12行)。使用一个负数作为第三个参数substr()的函数表示省略字符串末尾的字符数。
自定义函数是由程序员创建的一组自动化任务。一个自定义函数也可以称为用户定义函数。下面的例子创建一个自定义函数,返回数组中元素的平均值。一个数组包含相同类型的多个变量。我把“custom.php”放入一个文件,“invoke_custom.php”放入另一个文件来提高模块化。要显示结果,在web浏览器中载入“invoke_custom.php”(URL指向文件)(图1.36)。
PHP文件“custom.php”包括函数“calc_avg_array”(3 - 7行),它接受一个参数假定为一个数组(第3行),计算数组元素平均值(第5行)并将处理的结果返回给调用环境(第6行)。内置函数“array_sum()”(第5行)返回的数组元素之和而内置函数“count()”(第5行)返回数组元素的数量。使用这两个内置函数,它很容易计算平均值。
PHP文件“invoke_custom.php”包括了“custom.php”的内容,使用了“require_once()”的函数(第3行),这样在本程序内可以调用自定义函数。也就是说要使用另一个文件的代码,必须有调用程序包括其内容。数组变量“$array”持有数组内容(第4行)。结果变量“$result”调用函数“calc_avg_array()”并把“$array”数组作为参数(第5行)。“echo”显示结果(第6行)。
数组
一个PHP数组实际上是一个有序映射,将值映射到键。一个键对应一个数组元素(值)。键可以命名或编号。编号键的缺省起始序号是 0 ,所以你不需要显式地定义键编号。PHP文件“simple_array.php”说明了数组键怎样映射到数组元素(值)。图1.37显示结果。
第一个数组“$arr1”(3 - 8行)使用“命名”键,而第二个数组“$arr2”(9 -14行)使用“编号”键。你不需要显式地提供键在使用“编号”(默认)选项的时候。记住编号键的开始指数 0 ,所以访问“cat”元素的键(第18行)序号是 1 (数组中的第二位)。而使用一个命名键访问“cat”元素的键是“cat”(第16行)。
条件语句
条件语句用于基于不同条件执行不同的操作。PHP使用lsquo;ifrsquo;,lsquo;elsersquo;,lsquo;elseifrsquo;执行条件分支语句。PHP文件“if_else.php”说明了如何使用条件分支(图1.38)。
第一个条件(4 - 7行)判定“$val”是否小于“10”。因为它不是,PHP移动到第二个条件(8 - 11行),它判定“$val”是否大于“10”。因为它不是,PHP移动到第三个条件(12 - 15行),判定“$val”是否等于“10”。注意,在第12行,连续两个等号 == 代表判定是否相等。因为“$val”等于“10”,条件为真,执行了echo。
使用等号要非常小心,因为连续两个等号“==”是必需的。只使用一个等号代表分配变量的值,这意味着条件总为真!注意,最后一个条件“else”(16和17行)包括空花括号“{ }”,这意味着若这个条件为真,不执行任何动作。
PHP迭代
PHP支持三种类型的迭代(循环)——“while”,“for”,“foreach”。循环执行一个代码块,按照指定的次数或在指定的条件为真时。“while”在指定的条件为真时迭代代码块。“for”迭代代码块指定的次数。一个“foreach”循环为一个对象或数组的每个元素迭代代码块。PHP文件“loop.php”说明了每种类型的循环。
“while”和“for”循环非常相似,除了“while”只要值符合条件一直继续,,但“for”提前知道脚本应该运行多少次。“while”持续循环,只要变量“$i”是小于或等于2(第5行)。变量“$ i”利用“$i ”(第7行)每次递增1。“for”循环初始值为 1 ,继续直到它小于或等于“2”,并每次递增1(第9行)。“foreach”循环是为了处理数组和对象设计的。 foreach循环(第16行)显示“键”和对应的“值”(第17行)。运行代码可查看结果(图1.39)。
PHP“$_GET”变量
预定义的$ _GET变量用于收集值到一个表单,其发送的信息显示在浏览器的地址栏中。可以发送的信息有一个限制量。
下面的例子说明了如何使用这个变量。有两个文件。第一个文件包含HTML表单,但命名为“get.php”来坚持我在这本书中使用的命名惯例。命名注释之间的文件是唯一包含PHP的逻辑(1 - 3行)。表单的“method”和“action”在第13行中定义。所以,使用形式“get”发送数据到文件“handle_get.php”(与“action”属性一同定义)。用户输入定义在15到18行的“input”的标签。“input”标签定义数据传递的类型为文本而其“name”分别是“username”和“password”。表单提交中定义21和22行“input”的标签。
第二个文件包含逻辑来处理随表单发送的信息,它被命名“handle_get.php”。第3、4行利用“get”输入来自表单的输入变量“$ _GET”,其中包含键值对(键名称是表单控件的名称而值来自用户输入的数据)。
在一个浏览器中加载“get.php”,输入“username”和“password”,并单击“submit”按钮。图1.40展示了表单和提交之前输入的数据。图1.41显示了传过表单的数据。请注意,“username”和“password”的值在浏览器栏中的URL可见。
PHP“$_POST”变量
预定义的“$ _POST”变量用于收集值到一个表单,其发送的信息对其他人不可见。可以发送的数据量没有限制。
下面的例子说明了如何使用这个变量。有两个文件。第一个文件包含HTML表单,并命名为“post.php”。命名注释之间的文件是唯一包含PHP标签的逻辑(1 - 3行)。表单的“method”和“action”在第13行中定义。所以,使用形式“post”发送数据到文件“handle_post.php”(与“action”属性一同定义)。用户输入定义在15到18行的“input”的标签。“input”标签定义数据传递的类型为文本而其“name”分别是“username”和“password”,。表单提交中定义21和22行“input”的标签。
第二个文件包含逻辑来处理随表单发送的信息,它被命名“handle_post.php”。第3、4行利用“post”输入来自表单的输入变量“$ _POST”,其中包含键值对(键名称是表单控件的名称而值来自用户输入的数据)。
在一个浏览器中加载“post.php”,输入“username”和“password”,并单击“submit”按钮。图1.42展示了表单和提交之前输入的数据。图1.43显示了传过表单的数据。请注意,“username”和“password”的值在浏览器栏中的URL是不可见的。
SPL的定义与特征
标准PHP库(SPL)是通过复杂的聚合结构类型的循环提供高效的数据访问的集合。聚合结构是任何你想要循环的东西。如数组,XML数据库结果集树,和目录清单总结构,因为他们持有可以遍历的元素。
SPL实现迭代器设计模式。迭代器设计模式是面向对象设计技术,它被用于遍历一个总体结构并按顺序访问它的元素,而不用暴露其底层表示。这个想法是把访问和遍历移出总负责结构,并将它放入一个,定义了一个标准遍历协议的迭代器对象。一个遍历协议是一套来解释迭代一个聚合的过程结构的规则。所以,我可以将一个聚合结构置入一个迭代器对象,然后让迭代器对象以标准规则访问和遍历其元素。这样可使内部结构对外不可见。例如,如果我把一个数据库的结果设置到一个迭代器对象,我可以轻松处理所有元素,甚至在不知道数据库结果集内部结构的情况下!所有的遍历逻辑的处理都交给了迭代器对象。
迭代器接口的定义和特征
迭代器接口在逻辑上和功能上基于迭代器的设计模式。迭代器接口是一个提供与迭代器高效交互的必要方法的内置界面。。迭代器是一种提供遍历聚合结构的方法的对象。所有迭代器(包括SPL)都利用了迭代器接口。
PHP提供了两个接口,允许程序员定义对象在foreach循环中的行为-“Iterator”和“IteratorAggregate”。本节将讨论Iterator接口部分。IteratorAggregate接口将在本章末讨论。
PHP本身允许程序员用foreach循环来迭代对象。然而,这个过程只适用于有公共属性的对象。因此,公共属性的对象是唯一可以通过“foreach”循环迭代的值。
因为封装理论提倡使用私有或受保护的属性的getter和setter,对象的属性不能以通常方法访问。Iterator接口(和“IteratorAggrega
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[140760],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。