郑州大学php考试试题及答案.docx

上传人:赵** 文档编号:65761396 上传时间:2022-12-08 格式:DOCX 页数:41 大小:81.76KB
返回 下载 相关 举报
郑州大学php考试试题及答案.docx_第1页
第1页 / 共41页
郑州大学php考试试题及答案.docx_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《郑州大学php考试试题及答案.docx》由会员分享,可在线阅读,更多相关《郑州大学php考试试题及答案.docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、PHP1.1 使用 array 创建数组/创建一个带有索引的数组$speed = array(“ aa=50,2=120,3=260,4=300);/创建一个二组数组$two = array(color = array(red,blue,green),numbers = array(1,2,3,4,5,6,7,8,9);1.2 使用 compact()创建数组2. compact()接受可变的参数数目。每个参数可以是一个包括变量名的字符串或者是一个包含变量名的数组,该数组中还可以包含其它单元内容为变量名的数组1.2 使用 compact()创建数组foreach($result as $key

2、=$value)echo $key,=,$value,;输 出 : event=SIGGRAPH city=San Francisco state=CA1.3 使用 range()创建数组如果使用 array()函数,建立一个包含 100 个元素的数组, 每个元素的值之间都有一定的规律, 在实际操作中是比较麻烦的。在这种情况下,就可以使用 range()函数的自动功能来完成类似的操作。arrayrange(intstart ,intend,int step)2. 输出和测试数组使用 print_r() 函数输出 : print_r($array);使用循环控制语句输出: foreach($ar

3、ray as $key=$value)echo $key,=,$value,;使用 is_array() 函数测试参数是否为数组类型,如果是返回true,否则返回false:$states=array(aa,bb);echo $states is an array:.is_array($states).; 3.增加和删除数组元素通过赋值增加数组元素$arrays=array( 河南 = 郑州 );$arrays 江西 = 南昌 “;使用 array_push()函数追加数组元素(入栈)int array_push ( array &array, mixed var , mixed . )使用

4、array_pop() 返回数组的最后一个元素(出栈 ) mixed array_pop ( array &array )使用 array_shift() 返回数组的第一个元素mixed array_shift ( array &array )使用 array_unshift() 增加元素到数组头int array_unshift ( array &array, mixed var , mixed . )使用 array_pad()函数修改数组的大小,使其增加到指定的长度3.增加和删除数组元素示例:?php$stack = array(orange, banana); print_r($sta

5、ck);print ; array_push($stack, array_push); print_r($stack);print ; array_pop($stack); print_r($stack);print ; array_shift($stack); print_r($stack);print ; array_unshift($stack,array_unshift); print_r($stack);print ;?4.1 定位数组当一个数组有很多元素时,使用数组遍历来求证某个值或键名是否存在,在速度和效率上有一定的损失。 PHP 提供了 in_array() 和 array_k

6、ey_exists() 函数, 可以快速从一个数组中取得某个值或键名是否存在?in_array() 示例:$os = array(Mac, NT, Irix, Linux); if (in_array(Irix, $os) echo Got Irix;?array_key_exists() 示例:$search_array = array(first = 1, second = 4);if (array_key_exists(first, $search_array)echo tihs first is the array;4.1 定位数组对数组的操作主要是针对键名或值,在不想破坏被访问数组的

7、情况下,可以把这个数组的键 名或值,单独取出来进行操作,要想返回一个数组中单元的键名,可以使用array_keys() 函数,返回单元的值,可以使用array_values()函数。使用 array_keys() 与 array_values() 这两个函数取回的键名或值,都会保存的新数组中array_keys() 示例:$array = array(0 = 100, color = red); print_r(array_keys($array);4.2 遍历数组很多情况下我们都需要对数组进行遍历以获得各个键和值,PHP 提供很多了很多函数来完成类似的任务下面列举一些常用的函数?Key()返

8、回数组中当前单元的键名。?Reset()将 array的内部指针倒回到第一个单元并返回第一个数组单元的值,如果数组为空则返回FALSE 。?Each()返回数组中当前的键值对并将数组指针向前移动一步?Current()返回数组中的当前单元的值?End() 将数组的内部指针指向最后一个单元?Next()将数组中的内部指针向前移动一位?Prev() 将数组的内部指针倒回一位4.2 遍历数组 0, color = red,55,two=array(1=3,5,6,7); function dg($arr)$flag=reset($arr); while(!is_bool($flag)$key=key

9、($arr);$value=current($arr); if(is_array($value)dg($value);elseecho $key.:.$value,;$flag=next($arr);dg($array);?4. 数组排序数据排序时计算机科学中的核心问题,PHP 也提供了很多对数组的排序函数?简单排序(键/值关联不再保持) sort()、rsort() 。?根据关键字排序ksort()、krsort()?根据值排序asort()、arsort()?自然语言排序natsort()、natcasesort()、?多维排序array_multisort()?用户自定义的规则排序uso

10、rt()4. 数组排序lemon,“ o=orange, b=banana,“ a=apple); foreach ($fruits as $key = $val) echo $key = $val,;echo ; sort($fruits);foreach ($fruits as $key = $val) echo $key = $val,;?4.其他常用数组函数 合并和拆分数组的函数array_combine() Array_merge() Array_merge_recursive() 等随机返回数组键的函数Array_rand() 随机排序函数Shuffle()求和函数Array_nu

11、m()值总数count()对下面的数组进行遍历,然后输出。要求使用两种不同的方法$arr = array(lemon, a=orange, b=array(6,3,44,7), c=apple);输出结果参照下面的:0:lemon a:orange b:6,3,44,7,c:apple第五讲面向对象PHP 提供几种在脚本中包含文件的主要途径。Include()和 require()他们的使用方式如下:被引用的文件不一定非要使用扩展名.php,你可以自己随便定义区别: require()和 include()除了怎样处理失败之外在各方面都完全一样。include()产生一个警告而require(

12、)则导致一个致命错误。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用require()吧。 include()就不是这样,脚本会继续运行。注意:课本上63 页介绍的并不准确了?课程目标?一、什么是面向对象(理解)?二、类和对象(掌握)?三、类的成员(掌握)?四、构造函数和析构函数(掌握)?五、其他关键字和辅助函数(了解) 第一什么是面向对象面对对象技术的基本观点如下:(1) 客观世界由对象组成。(2) 具有相同数据结构和操作的对象可归纳成类。(3) 类可以派生出子类,子类除了继承除了继承父类的全部特性外还可以有自己的特性(4) 对象之间的联系通过消息传递来维系。PHP 的 WEB

13、技术面向对象是仿造现实对象建立的, 他们也有状态和行为。 软件对象在一个或多个变量中维护它的状态。 变量是一个由标识符命名的数据项。 对象用方法实现它的行为。方法是与一个对象相关联的函数(子过程) 。对象有二个性质:状态 (state)和行为 (behavior) 。对象是一个封装数据属性和操作行为的实体.类的实例化:?phpclass myNamefunction _ _construct($myName)/构造函数echo(我的名字是:$myName);/下面创建类实例$name1=new myName( 周洲);$name2=new myName( 周阳);$name3=new myNa

14、me( 周文);?类的成员 第一字段1、声明字段ClassStaffpublic $name=lucky; private $age=25;2、使用字段与变量不同,使用字段要使用-操作符,而不是美元符号$employee=new Staff(); echo $employee-name;当在定义字段的类中引用字段时要使用$this 关键字。 $this 表示当前类第二属性1、 set()/两个下划线ClassStaffpublic $name=lucky;function set($propname,$propvalue)echo Noexistent varible:$propname;可用

15、来验证某个属性是否存在或增加新的属性2、 get()/两个下划线ClassStaffpublic $name=lucky;function get($propname)return$this- $propname;它接受一个属性名作为输入参数,获取该属性的值。3、自定义获取方法和设置方法访问类成员变量有一个特殊的一指针$this。通过该指针, 可以方便地访问类属性或者给类属性赋值。class Personvar $name; / 定义属性function get_name()/无参数return $this-name;/$this 去访问和设置当前对象的$name 属性function set

16、_name($new_name)/ 有参数$this-name = $new_name;/同上注释echo $this-name;第三方法方法和函数非常相似,只不过方法是用来定义特定类的行为。与函数一样, 方法可以接受参数, 并可以返回一个值。方法的调用只是在方法前面加上调用方法的对象的名称,如下$object-methodname(); 1、声明方法ClassStaffpublic function show()echo 调用了方法 ;2、调用方法$employee=new Staff();$employee-show();控制对类的成员访问(1) public :在任何位置都可以读取和修改

17、这个成员变量或者调用这个方法。这个修饰符在外部代码使用,由给定类中的代码使用,或者在扩展给定类的功能的类中使用。(2) private : 只有这个类中的代码才能读取和修改私有变量或者调用私有成员函数。其他代码、类或者扩展这个类的功能类(子类)不能使用私有条目。( 3) protected: 外部代码与给定类不相关的其他类不能读取或者修改使用了关键字protected 的成员变量,也不能调用受保护的成员函数。构造函数构造函数是类中的一个特殊函数,当使用new 操作符创建一个类的实例时,构造函数将会自动调用。Php5 中以 construct() 作为构造函数。而php4 中是以将和类名相同的函

18、数作为构造函数。为了兼容php5 先寻找 construct(), 如果找不到再寻找以类名命名的构造函数如果一个类没有构造函数,则调用基类的构造函数,如果有的话。ClassStafffunction construct()/两个下划线echo 调用了构造函数;function Staff()echo 调用了构造函数2;$employee=new Staff();析构函数析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。脚本执行结束时,php 会撤销内存中的所有对象,因此如果实例化时创建的信息都会保留到内存中,就不需要显式的声明析构函数。但是如果创建了不那么容易丢失的数据时(例

19、如连接数据库)就应当定制析构函数进行销毁数据。ClassStafffunction construct()echo 调用了构造函数;function destruct()echo 调用了析构函数;$employee=new Staff();静态类成员当需要要一些所有类对象共享的字段和方法时就需要创建一些静态的字段和方法。ClassStaffpublic static $name= 静态字段 ; static functionshow()echo self:$name,;echo Staff:$name,;Staff:show();Instanceof使用 instanceof 关键字可以判断某

20、个对象是否是某个类的实例。ClassStaff$manager=new Staff();if($managerinstanceofStaff) echo yes;面向对象2对象克隆有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象,是非常有必要的,而且克隆以后, 两个对象互不干扰。class Personpublic $name= 张三 ;/人的名子public $sex= 男;/ 人的性别public $age=20;/ 人的年龄/这个人可以说话

21、的方法, 说出自己的属性function say()echo 我的名子叫: .$this-name.性别: .$this-sex.我的年龄是:.$this-age.;$p1=new Person();$p2=clone $p1;$p1-say();$p2-say();在 PHP5 中我们使用 ”clone”这个关键字克隆对象;class Personpublic $name= 张三 ;/人的名子public $sex= 男;/ 人的性别public $age=20;/ 人的年龄/这个人可以说话的方法, 说出自己的属性function say()echo 我的名子叫: .$this-name.性

22、别: .$this-sex.我的年龄是:.$this-age.;$p1=new Person();$p2=clone $p1;$p1-say();$p2-say();PHP5 定义了一个特殊的方法名“ clone() ”方法,是在对象克隆时自动调用的方法,用“ clone() ”方法将建立一个与原对象拥有相同属性和方法的对象,如果想在克隆后改变原对象的内容,需要在 clone() 中重写原本的属性和方法。在 Person 类中增加如下方法:function clone()$this-name= 我是假的 ;$this-age=30;继承 (extends)什么是继承继承性是面向对象程序设计语言

23、不同于其他语言的最主要的特点.继承是指子类可以自动拥有父类的全部属性与操作的机制.继承带来了以下的好处:1. 子类在超类提供的共有元素的基础上提供特殊化的行为。通过使用继承,程序员可以多次重用超类中的代码。2. 程序员可以实现称为“抽象类( abstract class)”的超类,它定义了“通用的 ”行为和共同拥有的状态。 抽象超类定义并可能部分实现了这些行为,但是类的一部分未被定义并且未被 实现。其他程序员可以在特殊化子类中填充细节。operationA();$_b-attributeA = 100;$_b-operationB();$_b-attributeB = 100;?PHP 不支持

24、多重继承抽象方法和抽象类 什么是抽象方法?我们在类里面定义的没有方法体的方法就是抽象方法,所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字 “abstract”来修饰;只要一个类里面有一个方法是抽象方法, 那么这个类就要定义为抽象类, 抽象类也要使用“abstract”关键字来修饰; 在抽象类里面可以有不是抽象的方法和成员属性, 但只要有一个方法是抽象的方法,这个类就必须声明为抽象类,使用 ”abstract”来修饰。abstract class Demopublic $test;abstract f

25、unction fun1(); abstract function fun2(); function fun3()/抽象类不能直接实例化为对象,必须有子类继承之后再实例化接口 (interface)PHP 5 引入了接口,是多重继承问题的解决方法!接口的思想是指定一个实现了该接口的类必须实现的一系列函数。 需要注意的是, 只要某个类执行了某个接口, 那么该类中必须实现该接口中所定义的每个方法! 否则程序会报错! 你可以把接口理解为类的模板。PHP 规定用 interface 来定义一个接口,然后用 implements 让类执行一个接口!接口对于以下情况有用:(1) 获得无关类之间的类似之处,

26、而不必勉强地实施类关系。(2) 声明一个或多个类可能要实现的方法。(3) 显露对象的编程接口,而不必显露它的类。/使用 “implements”这个关键字去实现接口中的抽象方法第 7 章 字符串1.字符串定义 字符串的定义$str=“ abclcdfg ” ;一个字符串变得非常巨大也没有问题,PHP 没有给字符串的大小强加实现范围,所以完全没有理由担心长字符串。语法 :字符串可以用三种字面上的方法定义:?单引号,?双引号“”?定界符1.1 单引号指定一个简单字符串的最简单的方法是用单引号(?)括起来。例如:$str1=, phpchina?;/str1 赋值用于单引号字符串的转义序列?解释为一

27、个单引号,解释为一个反斜杠()。任何其他反斜线的出现仅仅被解释为一个反斜杠。注: 和其他两种语法不同,单引号字符串中出现的变量和转义序列不会被变量的值替代。1.1 示例?php$name=Tim OReilly;/转义一个单引号echo $name. “;$path=C:WINDOWS;/转义一个反斜杠echo $path.;$nope=n;/ 不是转义echo $nope;$name=world;$str=Hello,$name;/ 不会替代变量值echo $str;?1.2 双引号如果用双引号( “)括起字符串,PHP就能识别更多特殊字符的转义序列: 转义字符 :” 双引号n换行r回车t制

28、表符反斜杠$美元符此外,如果试图转义任何其它字符,反斜线本身也会被显示出来!1.3 定界符给字符串定界的方法是使用定界符语法:( “ ”)。应该在之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。结束标识符必须从行的第一列开始。定界符文本表现的就和双引号字符串一样,在定界符文本中不需要转义引号。1.3 示例?php$my_quote=2. 字符串的输出echo语法 : echo string arg1, string argn.;它是语言结构,不是真正的函数。它和print 的区别在于,可以接受多个参数。例如: echo “first ” ,” second” ,” third

29、” ;/ 合法echo (“hello” ,”world! ” );/解析错误print( )语法 : int print(string arg);本函数输出字符串。若成功则返回1,失败则返回0。例如传输中途客户的浏览器突然挂了,则会造成输出失败的情形。例如: if(!print( “ Hello,world ” )die( “ you re not listening to me!” );3. 字符串索引字符串是一个有序的字符集合,那么既然是有序的,我们就应该可以提取其中任意的字符,我们看下面实例:?php$my_string = Doubled;for ($index = 0;$index

30、 我们用浏览器进行输出:DDoouubblleedd 4.字符串操作符 字符串连接符(.)在 PHP 中有且仅有一个操作符,那就是字符串的连接符(.),它可以将两个字符串元素进行连接,然后依照连接的顺序,将两个字符串按照顺序组成一个新的字符串.$my_string = hello.world;串联字符串 (.=)就像我们的算术运算符一样,PHP 的字符串操作符的串联也有它简短形式(.=),它是下面这种结构:$my_string_var .= $new_addition;它等价于:$my_string_var = $my_string_var.$new_addition; 5.字符串处理1. 获

31、取字符串长度2. 比较两个字符串3. 处理字符串大小写4. 修整字符串5. 字符串和HTML互相转换6. 字符串分割与拼接5.1 获取字符串长度函数 strlen()返回一个字符串里的字符数:$string = ,Hollo,world ?;$length = strlen($string);/$length 为 115.2 比较两个字符串1. 可以直接使用比较运算符(, =, =,= )比较字符串。= 和 = 的区别:这两个操作符不同之处在于如何处理非字符串操作数。= 操作符将非字符串操作数转换成字符串,所以它报告3 和“3“是相等的。 = 操作符不进行转换,并且如果参数的类型不同则返回fa

32、lse。2.使用函数比较字符串函数 : strcmp ( )/区分大小写;语法 :int strcmp ( string str1, string str2 )返回值 : 如果 str1 大于 str2 返回 1;如果 str1 小于 str2 返回 -1;如果 str1 等于 str2 返回 0;函数 : strcasecmp ( )/用法作用同上,只是不区分大小写5.3 处理字符串大小写函数 : strtolower( )语法 : string strtolower(string str);返回值 : 字符串本函数将字符串str 全部变小写字符串。函数 : strtoupper( )语法

33、: string strtoupper(string str);返回值 : 字符串本函数将字符串str 全部变大写字符串。5.3 处理字符串大小写函数 :ucfirst( )将字符串第一个字符改大写。 语法 : string ucfirst(string str); 返回值 : 字符串函数 :ucwords( )将字符串每个单词第一个字母改大写。语法 : string ucwords(string str);返回值 : 字符串本函数返回字符串str 每个字的字首字母全都改成大写。第 8 章文件和目录的操作8.1 路径与磁盘操作文件系统函数操作文件的同时,一定会涉及到对路径的相关操作。路径又分为

34、相对路径和绝对路径,相对路径是以操作的文件所在目录为起点的路径;绝对路径是以当前文件所在盘符为起点的路径。本节主要介绍关于路径和磁盘方面的函数。8.1.1 获取文件路径的信息? 使用 pathinfo() 函数,可以对指定的路径和文件名进行解析,并返回一个数组。下面演示 pathinfo() 函数的使用方式,? 获取文件路径的信息?$value)?echo $key=$value;?8.1.2 获取路径中的文件名部分?虽然 pathinfo() 函数返回的数组,已经包括了指定路径与文件名的文件名部分,但其值是保存的数组里的。PHP 提供了basename()函数,可以快速的获取指定文件的文件名

35、部分,而不用从数组中读取。下面演示basename()函数的使用方法,代码如清单所示。?清单获取路径中的文件名部分?8.1.3 获取路径中的目录部分?使用 dirname() 函数,可以快速的获取指定文件的路径部分。?dirname() 函数是根据目录分割符,来取得路径中路径部分的。在 windows 系统下,“/”与“”都可以作为目录分割符,其他系统使用“/”作为分割符。8.1.4 寻找与模式匹配的文件路径?glob() 函数可以根据指定的条件,来寻找与条件相符的文件或目录,并通过数组返回。?代码清单寻找与模式匹配的文件路径?php?/使用 glob() 函数 ,返回当前目录下,所有的 .p

36、hp 文件?$result = glob(*.php);?/遍历返回的数组?foreach ($result as $filename) ?echo $filename;?8.1.5 获取目录中的可用空间?disk_free_space()函数可以根据文件系统和磁盘分区,返回指定目录当前可以使用的字节数。?php?/在 Windows 下,查看 C 分区的可用字节数?$freespace = disk_free_space(C:);?echo c: 可用字节数为:.$freespace;?/以 M 为单位显示磁盘可用空间?$m = $freespace/1024/1024;?echo c: 可用空间为:.$m;?8.1.6 获取目录的磁盘总大小?disk_total_space() 函数可以根据文件系统和磁盘分区,返回指定目录的空间大小。?清单获取目录的磁盘空间大小?php?/在 Windows 下,查看 C 分区的总字节数?$totalspace = disk_total_space(C:);?echo c: 盘的总字节数为:.$totalspace;?/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁