PHP与Mysql练习题二

更新时间:2023-12-03 22:15:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1)LAMP的含义中,以下哪项是完全正确的? --------------C A)linux+access+mysql+php B)linux+apache+mssql+php C)linux+apache+mysql+php D)linux+access+mssql+php

2)下列哪些是PHP的配置文件? ---------------B A)php.exe B)php.ini C)php_mysql.dll D)php_mysqli.dll

6)PHP中应该如何声明变量? -------------A A)采用$号开头后面跟变量名 B)采用var开头后面跟变量名

C)采用declare开头后面跟变量名 D)直接写出变量名就可以

8)PHP哪个函数能取得字符串长度?-------------C A)strrev B)substr C)strlen D)strchr

9)PHP字符串连接运算符是:------------------B A)+ B). C)&& D)!

10)阅读以下PHP代码,并选择正确的运算结果:--------------B

$inta=100; $inta++; ++$inta; $inta--; --$inta; echo($inta); ?> A) 99 B)100 C)101 D)102

11)阅读以下PHP代码,并选择正确的运算结果:--------------A

A)1 B)3 C)5 D)7

15)? : 运算符相当于以下哪个PHP 语句? --------------A A) if...else B) switch C) for D) break

16)关于PHP中的各种循环,说法正确的是:----------A A)foreach 语句用于循环遍历数组 B)do...while 是先判断再运行循环 C)while 是先循环再判断条件

D)for循环是条件判断型的循环,跟while相似

19)以下哪个mysql命令可以查看数据表的结构信息? --------------B

A)show tables; B)desc表名 C) create table 表名 D) select * from 表名?

20) mysql哪些命令可以用于选择数据库? ------------------C

A) show databases B) use database 数据库名 C) use 数据库名 D) user 数据库名

25) php连接上mysql之后,采用哪个函数配置循环可以得到指定表中的记录? -----------------A A)mysql_fetch_row B) mysql_select_db C)mysql_query D)mysql_connect

26)mysql_query(“set names gb2312”); 该行代码一般要写在哪里最合适?---------------A A)从数据表中返回记录之前 B)从数据表中返回记录中间 C)从数据表中返回记录之后 D)写在哪里也无所谓

27)mysql_free_result($result);本行代码的含义是:-------------C A)断开PHP与mysql数据库的连接 B)重新启动PHP与mysql数据库的连接 C)释放变量resut,以节约服务器资源 D)占用服务器运行进程

28)PHP的mysql_query()函数处理以下哪些指令成功就可以返回查询后的结果集?-----------B A)insert B) select C) delete D)update 29)

$result=mysql_query($sqlstr,$conn); ?>

阅读以上代码,请问该代码的功能是:-----------------B A)向 sanguo中查看记录 B)向 sanguo中删除记录 C)向 sanguo中添加记录 D)向 sanguo中修改记录

30)php中哪个函数用于读取整个文件?--------------D A) fgetss() B)fgets() C)fread() D)readfile()

31)PHP对目录进行操作时,先用哪个函数对操作目录进行是否存在的判断? ----------------B A)file_exists B)is_dir C)fopen D) fclose

32)在正则表达式当中 [ ]表示的含义正确的是:---------------A A)[ ]中只能匹配一个字符 B)[ ]中可以匹配多个字符

C)[a-c]表示可以匹配a,c两个字母 D)以上说法都正确

34)正则表达式的行尾定位符是: ---------------A A) $ B)@ C)# D)*

35)PHP中声明一个类,用以下关键字来进行声明? -------------------B A)$ B) class C) public D) echo

36)PHP中 最终类应该用哪个关键字进行修饰? A) new B) final C) extends D) 没有最终类

37)php向文本文件写入内容,应该采用哪个文件操作函数?--------------------B A)fclose() B)fwrite() C)fopen() D)file()

38)PHP中类的继承是通过哪个关键字来实现的? -------------------C A)final B) private C)extends D) interface

41)PHP中的 $_GET['参数名'],表示什么含义? -------------A A)接收URL传递过来的参数

B)接收用POST方式发送过来的参数 C)发送参数给其它页面 D)以上说法都不正确

43)正则表达式当中的 \\d 表示的含义为: ------------------B

A)把字母d转义 B)任意一个十进制数字 C) 没有实际含义 D) 换行符

44)mysql 中 auto_increment 单词表示什么含义? ------------B A)主键 B) 自动增长 C) 非空约束 D) 批量导入

45)PHP中的构造函数为: --------------A

A)__construct B)__destruct C)__autoload D)跟类名相同

46)以下哪个关键字用于表示类的析构函数? --------------------B

A)__construct B)__destruct C)__autoload D) 析构函数就是类的别名

47)PHP的文件上传功能,需要在php.ini配置当中,开启哪项功能?-------------B

A) display_errors = on B) file_uploads=on C)short_open_tag = On D) 以上都不正确

49)PHP中检测某文件是否存在的函数为: -------------------B A)class_exists B)file_exists C)is_dir D) get_class

50) PHP如果要实现网站常见的分页功能,mysql中的哪个子句是必不可少的?----------C A)order B) having C) limit D) using

57)PHP中调用类方法的符号是: ---------------B A) && B) -> C) ** D)<-

58)PHP中 类的属性含义正确的是:-----------------A A)类的属性实质就是类中的变量 B)类的属性实质就是类中的方法 C)类的属性实质就是类的子类 D)类的属性实质就是名

59)echo ceil(0.60); 返回值为:---------B A) 6 B) 1 C) 0 D) 0.5

61)关于PHP的switch语句说法正确的有: ------------AB A)break 语句可以没有 B)default 语句可以没有 C)break 语句不可以没有 D)default 语句不可以没有

64)下列哪些属于PHP中的数据类型: ----------------ABCD

A) string B) int C) boolean D) object

65)关于 drop 关键字的说法正确的有: ----------------------AB A)drop 可以删除数据库 B)drop 可以删除表

C)drop 可以删除表中的某条数据 D)以上说法都正确

66)PHP的文件上传函数 move_uploads_file 包括哪些属性? ------------------ABCD A)name B) type C)size D)tmp_name

67) 以下哪些操作具有打开的功能?----------------AB A)fopen() B)opendir() C) fclose() D) closedir()

68)PHP中关于类体范围的说法正确的有:--------------AB A)类要用class 关键字声明,后面跟类名 B)类体要用一对{ }括起来 C)类体要用一对( )括起来 D)类体要用一对[ ]括起来

69)关于PHP的if...else 说法正确的有: ---------------BD A) if 语句可以没有 B) else 语句可以没有

C) if 语句后面可以有多个else 语句 D) else 语句里面可以嵌套if

70)正则表达式中,以下哪些可以表示1位整数? --------------------ABC A)[0-9] B) [0123456789] C) \\d{1} D) \\w{1}

71)mysql在安装过程中,以下哪些说法是正确的? --------------ABC A)mysql在安装时默认端口号为 3306 B)mysql在安装时默认字符集为 latin1

C)mysql在安装成功以后,启动mysql 要输入密码

D)mysql在安装成功以后,启动mysql 不需要输入密码

75)PHP的$_POST可以用来取得以下哪些表单数据? ----------ABCD A) text B)password C) radio D)textarea

77)正则表达式 ^f.d$ 可以匹配的单词有: ------------------AB A)fed B)fid C)fabd D)fbcd

80)跟PHP会话控制有关的方法有: ----------------------ABC

A)session_start() B)session_destroy() C) $_SESSION['参数名'] D)setcookie()

84)PHP的字符串型数据,可以用以下哪些符号括起来? -------------ABC A) 一对单引号 B)一对双引号 C)定界符符号 D) 一对**号

85)PHP中包含哪些循环方式?------------------ABCD A)do...while B) while C)for D) foreach

86)以下哪些是PHP变量的命名规则?--------------ABCD A)变量名必须以字母或下划线 \开头。 B)变量名只能包含字母数字字符以及下划线。 C)变量名不能包含空格

D)如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头

87)以下哪些函数可以取得文件中的一行数据内容?-------------------AB A)fgets() B) fgetss() C) fopen() D)fclose()

91)以下哪些是合法的数组形式?---------------------------ABC

A)array('张三','李四'); B)array('a'=>'张三','b'=>'李四') ; C)array('张三','b'=>'李四'); D)new ('张三','李四');

95)PHP 类中的变量 ,也可以称为: ------------------------AB A)属性 B)数据成员 C) 方法 D)子类

96)PHP连接mysql数据库需要用到的三个参数分别是: (采用的是mysql_connect函数连接)------ABC

A)主机名 B)数据库密码 C) 数据库用户名 D) 连接报错信息

97)PHP中包含两套正则表达式的函数库,分别是哪两个? -------------------AB A)PCRE B)POSIX C)Smarty D)Ajax

98)PHP中跟文件指针操作有关的函数有: --------------ABCD A) feof() B) rewind() C) ftell() D)fseek()

100)以下哪些属于PHP自带的预定义变量? -----------------ABCD A)$_POSTB) $_GET C)$_SERVER D)$_SESSION

101)PHP中关于上传文件的说法中正确的有:--------------------AB A)在php.ini配置中 必须要开启 file_uploads=On 功能

B)在上传表单标记中,必须要有 enctype=\属性 C)必须用get方法进行上传 D)以上说法都正确

102)正则表达式中行定位符有: ---------------AB A)^ B) $ C)@ D) !

104)以下哪些属于正则表达式中的预定义字符? ---------------ABC A)? B) + C) * D) /

105)PHP中类的访问修饰符有: --------------ABCD

A)public B)private C)protected D) 以上说法都正确

106)以下的PHP字符串操作函数中,哪两个是互为相反的? -------------------AB A) explode B) implode C)strtoupper D)trim

107)属于cookie 的正确说法有: ------------------AB A)在客户端保存,并不在服务器端保存 B)用来识别不同的用户

C)cookie的数据信息非常可靠 D)客户不能拒绝cookie

109)正则表达式中的 \\w 包含以下哪些含义? ----------------AB

A)任意一个单词字符 B)相当于[a-zA-Z0-9] C)把w转义 D)以上说法都正确

110)PHP中关于类体的说法正确的有: ----------------ABCD A) 类体中主要包括属性和方法的声明和定义 B) 类体中可以只定义属性或只定义方法

C) 类体中可以不定义任何属性和方法,此时称为 空类 D) 以上都正确

111)continue 和 break 语句说法正确的有? -------------------BC

A)continue 语句则是中断循环过程,不再判断执行循环的条件是否成立。 B)break 语句则是中断循环过程,不再判断执行循环的条件是否成立。 C)Continue 语句只是结束本次循环,并不是中断整个循环的执行。 D)break 语句只是结束本次循环,并不是中断整个循环的执行。

112)以下哪些关键字可以操作数据库? --------------------ABC A) create B) drop C) use D)select

113)PHP的注释符号有: -------------------BC A) \\\\注释语句 B) //注释 C) /* 注释语句 */ D) \\* 注释语句 *\\

114)面向对象的编程方式以下哪些特点? ---------------ABC A)继承 B)封装 C)多态性 D) 以上都不正确

119)以下关于PHP中父类,子类关系的说法正确的有:-------------BC A)PHP中一个父类只能有一个子类 B)PHP中一个子类只能有一个父类 C)PHP中一个父类可以有多个子类 D)PHP中一个子类可以有多个父类

----------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------

120) PHP只能跟MySQL数据库进行联合编程--------------错 121) MySQL安装时,默认的字符集是gb2312--------------错

124) PHP中除法运算的结果都为浮点数,即使相除的两个变量都为整数------对 125) PHP的构造函数为 __destruct() ; --------------错 126) PHP的短标记模式为: --------------错

127) continue 语句则是中断循环过程,不再判断执行循环的条件是否成立。----错 128) strtolower该函数的功能是把字符串全转为大写----------错 129) PHP预定义常量要使用define()函数进行定义 ----------对

130) PHP变量名必须以字母或下划线 \开头,不可以用数字开头---------对 131) base64编码中不包括+ 号 ---------------错

132) mysql整数类型中,有符号的比符号的可以保存的数字大 --------------错 133) 接口可以看做是PHP中多继承的解决方案 ------------------对

134) 表单数据中包括隐藏表单,PHP也会接收不到隐藏表单中的数据--------------错 135) implements 用于实现PHP中类的继承-----------------错 136) do?while是先执行后判断,无论表达式的值是否为True,都将执行一次循环---------------对

137) PHP中字符串连接运算符为 = 号------------------错

138) mysql中的limit 关键字可以限制结果集中记录的个数 -------------对 139) 33f 的结果为 0.5 ---------------------------------------错

140) self 是指向父类的指针,主要用于调用父类的构造函数---------------错

141) php中的else语句必须和if语句联合使用,自己不能单独使用 ------------------对

142) 在PHP语句声明的变量,跟在PHP函数中声明的变量即使重名也没关系,因为它们俩个重名变量的作用域不相同----------对

143) smarty 模板的左右边界符号只能定义为 {% %} --------------错 144) PHP默认时间是格林威治时间----------------------对

145) PHP中算术运算符的运算优先级是:先算乘除余,后算加减,有圆括号的要最后算---------错 146) 在PHP实现网站信息翻页功能中,数据库的 order 子句是必须的 ------------错 147) PHP中异或运算符号为: xor --------------对

148) mysql 数据库中的 like 查询结构中,一个下划线代表一个字符 ----------------对 149) left join 关键字表示右外连接 ----------------错

150) PHP中的八进制,就是在一个整数前面加上字母o ------------------错 151) get方式提交的数据,应该用$_POST方式进行接收------------错 152) PHP数组的下标默认从1开始 ----------------错

153) strtoupper 返回的是小写字母,strtolower 返回的是大写字母 -----------错 154) 100==='100' 该表达式返回的值为true --------------错

155) PHP中声明变量要用 $号,后面中变量名进行声明----------------对

156) mysql 交叉连接后生成的记录总数为参与连接的各表记录总和-------------------错 157) PHP中的字符串,单引号,双引号表示的意思是不一样的------------------对 158) SQL的分组语句中,having子句是不能省略的---------------------错

159) 自连接就是一个表与它自身的连接,用来取出表中彼此包含左外连接的记录----------错 160) 在PHP.ini 文件中开启display_errors=on的目的是给网页用户提供错误信息---------错 161) PHP的文件操作函数rewind () 用于把文件位置指针设为文件流的结尾-----------错 162) PHP跟C#.net语言一样,只能运行在windows操作系统平台上 ---------------错 163) --$inta; 该表达式的含义是变量 $inta自身减1以后,再减去1 ------------错 164) float (5,2) 表示最多能显示7位数字,整数为5位,小数为2位 -------------错 165) smarty 当中,assign 方法是用来调用模板的---------------------错

166) PHP中的逻辑运算 与运算有两个运算符号,但功能一样----------------对

167) mysql 中 auto_increment自动增长列的,初始值只能从 1 开始 -------------错 168) trim函数可以用来删除字符串中间包含的空格 ------------------错 169) php中的三重操作符表达式 相当于 while 循环语句 ----------------错

170) php跟mysql进行连接过程中,如果连接失败,应该可以用mysql_error()返回错误信息-------对

171) PHP中的字符串 explode 跟 implode 的功能是互为相反的 -----------------对 172) preg_match( )函数只进行一次匹配,最后返回 0 或者 1 ----------- 对

173) 如果A表有三列字段,B表有两列字段,它们之间是不能进行联合的----------------对 174) html表单发送数据,默认按 post 方式进行发送 ----------------错 175) for 循环 只能用于对数组进行处理---------------------错

176) mysql_query()函数是选择数据库的专用函数-------------------错 177) 使用关键字 final 修饰的类,可以被继承 --------------------错 178) PHP的析构函数是必须要有的-------------------错 179) PHP中的类访问修饰符,默认为public --------------对 180) PHP中的类支持多继承------------------

1. 变量如何定义?如何检查变量是否定义?如何删除一个变量?判断一个变量是否为空的函数?

isset() unset() empty()

2. 什么是可变变量? 一个变量的变量名可以动态的设置和使用。 $a = 'hello' , $$a = 'world', ${$a}=hello world

3. 变量赋值方式有哪几种? 1)直接赋值 2)变量间赋值 3)引用赋值

4. 引用和拷贝有什么区别? 拷贝是将原来的变量内容复制下来,拷贝后的变量与原来的变量使用各自的内存,互不干扰。 引用相当于是变量的别名,其实就是用不同的名字访问同一个变量内容。当改变其中一个变量的值时,另一个也跟着发生变化。

5. php中变量有哪些基本数据类型? php支持8种原始数据类型。 包括: 四种标量类型(布尔型boolean,整型interger,浮点型float/double , 字符串string) 两种复合类型(数组array , 对象object) 两种特殊类型(资源resource,NULL)

6. 其它类型转换为boolean类型时,哪些被认为是false? 布尔值false,整型值0, 浮点型值0.0, 空白字符串, 字符串'0', 空数组,特殊数据类型NULL, 没有设定的变量。

empty()函数在哪些情况下返回true? 布尔值false, 整型值0, 浮点型值0.0, 空白字符串, 字符串'0', array()空数组, 特殊数据类型NULL, 没有任何属性的对象, 没有赋值的变量。

哪个用户的。 两者最大的区别就是session存储在服务器端,而cookie是在客户端。session安全性更高,而cookie安全性弱。

session在web开发中具有非常重要的份量。它可以将用户正确登录后的信息记录到服务器的内存中,当用户以此身份 访问网站的管理后台时,无需再次登录即可得到身份确认。而没有正确登录的用户则不分配session空间,即便输入了 管理后台的访问地址也不能看到页面内容。通过session确定了用户对页面的操作权限。 使用session的步骤: 1. 启动session: 使用session_start()函数来启动。 2. 注册会话: 直接给$_SESSION数组添加元素即可。 3. 使用会话: 判断session是否为空或者是否已经注册,如果已经存在则像普通数组使用即可。 4. 删除会话: 1.可以使用unset删除单个session; 2.使用$_SESSION=array()的方式,一次注销所有的会话变量; 3.使用session_destroy()函数来彻底销毁session。

cookie怎么使用? 1. 记录用户访问的部分信息 2. 在页面间传递变量 3. 将所查看的internet页存储在cookies临时文件夹中,可以提高以后的浏览速度。 创建cookie: setcookie(string cookiename , string value , int expire); 读取cookie: 通过超级全局数组$_COOKIE来读取浏览器端的cookie的值。 删除cookie:有两种方法 1.手工删除方法: 右击浏览器属性,可以看到删除cookies,执行操作即可将所有cookie文件删除。 2.setcookie()方法: 跟设置cookie的方法一样,不过此时将cookie的值设置为空,有效时间为0或小于当前时间戳。

62. 如何设置一个cookie的名字为username,值为jack,并且让此cookie一周后失效? 一个浏览器最多可以产生多少个cookie,每个cookie文件最大不能超过多少? setcookie(‘username’,’jack’,time()+7*24*3600);

最多可以产生20个cookie,每个最多不超过4K

63. 设置或读取session之前,需要做什么? 可以直接在php.ini中开启session.auto_start = 1或者在页面头部用session_start(); 开启session,session_start()前面不能有任何输出,包括空行。

64. 在实际开发中,session在哪些场合使用? session用来存储用户登录信息和用在跨页面传值。 1)常用在用户登录成功后,将用户登录信息赋值给session; 2)用在验证码图片生成,当随机码生成后赋值给session。

65. 注销session会话的形式有几种? unset() $_SESSION=array(); session_destroy();

66. 什么是OOP?什么是类和对象?什么是类属性? OOP(object oriented programming),即面向对象编程,其中两个最重要的概念就是类和对象。 世间万物都具有自身的属性和方法,通过这些属性和方法可以区分出不同的物质。 属性和方法的集合就形成了类,类是面向对象编程的核心和基础, 通过类就将零散的用于实现某个功能的代码有效地管理起来了。 类只是具备了某些功能和属性的抽象模型,而实际应用中需要一个一个实体,也就是需要对类进行实例化, 类在实例化之后就是对象。★类是对象的抽象概念,对象是类的实例化。 OOP具有三大特点:1. 封装性(又叫做隐藏性);2. 继承性; 3. 多态性。 OOP的优点:1、代码重用性高(省代码) 2、使程序的可维护性高(扩展性) 3、灵活性

67. 常用的属性的访问修饰符有哪些?分别代表什么含义? private,protected,public。 类外:public ,var 子类中:public,protected ,var 本类中:private,protected,public ,var 如果不使用这三个关键词,也可以使用var关键字。但是var不可以跟权限修饰词一起使用。var定义的变量,子类中可以访问到,类外也可以访问到,相当于public

类前面:只能加final,abstract

属性前面:必须有访问修饰符(private,protected,public,var) 方法前面:static,final,private,protected,public ,abstract

68. $this和self、parent这三个关键词分别代表什么?在哪些场合下使用? $this 当前对象 self 当前类 parent 当前类的父类

$this在当前类中使用,使用->调用属性和方法。 self也在当前类中使用,不过需要使用::调用。 parent在类中使用。

69.类中如何定义常量、如何类中调用常量、如何在类外调用常量。 类中的常量也就是成员常量,常量就是不会改变的量,是一个恒值。 定义常量使用关键字const. 例如:const PI = 3.1415326; 无论是类内还是类外,常量的访问和变量是不一样的,常量不需要实例化对象, 访问常量的格式都是类名加作用域操作符号(双冒号)来调用。 即:类名 :: 类常量名;

70. 作用域操作符::如何使用?都在哪些场合下使用? 调用类常量 调用静态方法

71. 什么是魔术方法?常用的魔术方法有哪几个? 以__开头的系统自定义的方法。 __construct() __destruct() __autoload() __call() __tostring()

72. 什么是构造方法和析构方法? 构造方法就是在实例化一个对象的同时自动执行的成员方法,作用就是初始化对象。 php5之前,一个跟类名完全相同的方法是构造方法,php5之后魔术方法__construct()就是构造方法。 如果类中没有定义构造方法,那么php会自动生成一个,这个自动生成的构造方法没有任何参数,

没有任何操作。 构造方法的格式如下: function __construct(){} 或者:function 类名(){} 构造方法可以没有参数,也可以有多个参数。 析构方法的作用和构造方法正好相反,是对象被销毁时被自动调用的,作用是释放内存。 析构方法的定义方法为:__destruct(); 因为php具有垃圾回收机制,能自动清除不再使用的对象,释放内存,一般情况下可以不手动创建析构方法。

74. 什么是抽象类和接口?抽象类和接口有什么不同和相似的地方? 抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。 抽象类是通过关键字 abstract 来声明的。 抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含一个抽象方法, 抽象方法没有方法体,该方法天生就是要被子类重写的。 抽象方法的格式为:abstract function abstractMethod(); 因为php中只支持单继承,如果想实现多重继承,就要使用接口。也就是说子类可以实现多个接口。 接口类是通过interface关键字来声明的,接口类中的成员变量和方法都是public的,方法可以不写关键字public, 接口中的方法也是没有方法体。接口中的方法也天生就是要被子类实现的。

抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用中选择抽象类还是接口要看具体实现。 子类继承抽象类使用extends,子类实现接口使用implements。

抽象类至少有一个抽象方法吗?????? 答:如果一个类声明成抽象类,里面可以没有抽象方法 如果一个类中有抽象方法,这个类必须是抽象类

75. __call的参数有几个,类型是什么,意义是什么? 魔术方法__call()的作用是当程序调用一个不存在或不可见的成员方法时,php会先调用__call()方法, 将那个不存在的方法的方法名和参数都存储下来。 __call()包含两个参数, 第一个参数是那个不存在的方法的方法名,是个字符串类型; 第二个参数是那个不存在的方法的所有参数,是个数组类型。

本人认为__call()方法的意义更多在于调试,可以定位到错误。同时可以捕捉异常,如果某个方法不存在, 则执行其它可替代方法。

82. final关键字能定义类中的成员属性吗? 答:不能,类的成员属性只能有public ,private , protected ,var 来定义

83. final关键字定义的类能够被继承吗? 答:final定义的类不能被继承

84. 说说static关键字的使用场合?static能用在class前吗?

static可以跟public,protected,private一起使用吗?构造方法可以是static的吗? 答: static可以在属性和方法前面使用,调用static属性或者方法时,只要将类载入就可用,不用实例化 static不能用在class的前面 static可以跟public,protected,private一起使用,在方法的前面; ▲构造方法不能是static

85. 接口可以实例化吗?抽象类能实例化吗? 答:接口和抽象类都不能被实例化

86. class前面能加访问修饰符吗?如果能加,只能是哪几个访问修饰符?可以是权限访问修饰符public,protected,private吗? 答:class前面可以加final,static; ★class前面不能加public,protected,private

87. 类中属性前可以不加访问修饰符吗?成员变量前的修饰符只能是public,protected,private吗?还可以是哪几个? 答:类中的属性必须加修饰符,除了那3个以外,还可以加var

88. 如果echo一个数组,页面输出什么?echo一个对象呢?print一个数组或者对象呢? 答:页面只能输出“Array”;echo一个对象会出现“Catchable fatal error: Object of class t2 could not be converted to string in G:\\php2\\t2.php on line 33” print一个数组时也只是输出“Array”,print一个对象出现“Catchable fatal error: Object of class t2 could not be converted to string in G:\\php2\\t2.php ” ▲print和echo是一样的

89. __tostring()魔术方法在什么时候被自动执行? __tostring()魔术方法必须要return返回值吗? 当echo或者print一个对象时,就是自动触发。而且__tostring()必须要返回一个值

90. 什么是抽象方法?

答:在方法前面有abstract,而且方法没有方法体,连“{ }”也不能有

91. 如果一个类中有一个方法是抽象方法,而这个类没有定义成抽象类,会报错吗? 答:会,\error: Class t2 contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (t2::ee) in\

92. 如果一个类是抽象类,而类中的方法都是非抽象的方法,会报错吗? 答:不会报错,如果一个类是抽象类,其中可以没有抽象方法,但是一个类中有个方法是抽象方法,那么这个类一定是一个抽象类

94. final 关键字的应用应注意的问题? 使用final关键字定义的类,禁止继承。 使用final关键字定义的方法,禁止重写。

95. 如果一个类既要继承一个父类,又要实现多个接口,该如何写? 书写格式例如: class MaleHuman extends Human implements Animal,Life { ... }

97. PHP提供了2套正则表达式函数库,分别是哪两套?【 (1) PCRE Perl兼容正则表达式 preg_ 为前缀 (2) POSIX 便携式的操作系统接口 ereg_ 为前缀

98. 正则表达式的组成?

由原子(普通字符,如英文字符)、 元字符(有特殊功用的字符) 模式修正字符

一个正则表达式中,至少包含一个原子

99. 不常用魔术方法的触发时机? __isset() __unset()的触发时机 __sleep()、 __wakeup() 在对对象进行串行化的时候调用 如果序列化对象的时候,不写__sleep()方法,则所有的成员属性都会被序列化,而定义了__sleep()方法,则只序列化指定数组中的变量。 因此,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。 使用 __sleep 的目的是关闭对象可能具有的任何数据库连接,提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。 使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重

新初始化的任务。

100. OOP的三大特性是什么? 1. 封装性: 也称为信息隐藏,就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法。 于是开发人员只需要关注这个类如何使用,而不用去关心其具体的实现过程,这样就能实现MVC分工合作,也能有效避免程序间相互依赖, 实现代码模块间松藕合。

2. 继承性: 就是子类自动继承其父级类中的属性和方法,并可以可以添加新的属性和方法或者对部分属性和方法进行重写。继承增加了代码的可重用性。 php只支持单继承,也就是说一个子类只能有一个父类。

3. 多态性: 子类继承了来自父级类中的属性和方法,并对其中部分方法进行重写。 于是多个子类中虽然都具有同一个方法,但是这些子类实例化的对象调用这些相同的方法后却可以获得完全不同的结果,这种技术就是多态性。 多态性增强了软件的灵活性。

101.常见框架 thinkPHP yii ZendFramework CakePhp sy

102. 常用魔术方法的触发时机? 1)__autoload() :当程序实例化某个类,而该类没有在当前文件中被引入。此时会触发执行__autoload()。程序希望通过该方法,自动引入这个类文件。该方法有一个参数,即就是那个忘记引入的类的名称。__autoload()方法的工作原理是什么?当程序执行到实例化某个类的时候,如果在实例化前没有引入这个类文件,那么就自动执行__autoload()函数。这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下确实存在这个类文件后,就执行include或者require来载入该类,然后程序继续执行,如果这个路径下不存在该文件时就提示错误。使用自动载入的魔术函数可以不必要写很多个include或者require函数。 2)__construct() :这个是魔术构造方法。构造方法是实例化对象的时候自动执行的方法,作用就是初始化对象。该方法可以没有参数,也可以有多个参数。如果有参数,那么new这个对象的时候要记得写上相应的参数。在php5以前,没有魔术构造方法,普通构造

方法是一个跟类名同名的方法来实现构造的。如果一个类中既写了魔术构造方法,又定义了普通构造方法。那么php5以上版本中,魔术方法起作用,普通构造方法不起作用。反之,在php5以前版本中,不认识魔术构造方法,只是把该方法当做普通的方法。

3)__destruct() :这个是魔术析构方法。析构方法的作用和构造方法正好相反,是对象被销毁时被自动调用的,作用是释放内存。析构方法没有参数。 4)__call() :当程序调用一个不存在或不可见的成员方法时,自动触发执行__call()。它有两个参数,分别是未访问到的方法名称和方法的参数。而第二个参数是数组类型。

5)__get() :当程序调用一个未定义或不可见的成员属性时,自动触发执行__get()。它有一个参数,表示要调用的属性的名称。

6)__set():当程序试图写入一个不存在或不可见的成员属性时,PHP就会自动执行__set()。它包含两个参数,分别表示属性名称和属性值。 7)__tostring() :当程序使用echo或print输出对象时,会自动调用该方法。目的是希望通过该方法将对象转化为字符串,再输出。__tostring() 无参数,但是该方法必须有返回值。

8)__clone() :当程序clone一个对象的时候,能触发__clone()方法,程序希望通过这个魔术方法实现:不仅仅单纯地克隆对象,还需要克隆出来的对象拥有原来对象的所有属性和方法。

104、 访问权限修饰符有哪几种,对比解释 答:1、public 表示公共的,在本类中和子类中以及类外,可以对其调用 2、protected表示受保护的,可以在本类中和子类中调用 3、private表示私有的,只能在本类中调用 4、var,效果等同于public

105、 Class关键词前可以有哪些修饰词 a) Final修饰,表示该类是最终的,无法继承 b) Abstract修饰,表示该类是抽象类

106、 作用域操作符在那些场合下使用 答:作用于操作符的使用场合 a) 本类中: i. self::类常量 ii. self::静态属性 iii. self::方法() parent::方法() b) 子类中: i. parent::类常量

ii. parent::静态属性(public或者protected) iii. parent::方法()(public或者protected) c) 类外: i. 类名::类常量 ii. 类名::静态属性(public) iii. 类名::静态方法(public)

107、 $this,self, parent分别代表什么?哪些场合下使用 答:$this代表的是当前对象 self代表的是当前的类 parent代表的是当前类的父类 使用场合: $this只能使用在当前类中,通过$this->可以调用当前类中的属性和方法; self只能在当前类中使用,通过作用域操作符::访问当前类中的类常量、当前类中的静态属性、当前类中的方法; parent只能使用在有父类的当前类中,通过作用域操作符::访问父类中的类常量、父类中的静态属性、父类中的方法。

108、 说明是接口、抽象类二者有何相同和不同的地方? 1、接口是帮助php实现功能意义上的多继承的,用interface来声明,其方法没有方法体,使用implemens关键词来实现接口。 接口中只能包含抽象方法和类常量,不可以包含成员属性。 2、抽象类是一种不能被实例化的类,只能作父类,用abstract class来定义,抽象类和普通类可以没有区别,类中可以包含成员属性、类常量、方法。 子类得用extends来继承,而且只能是单继承。 两者相同点是都不可以被实例化,都是需要被继承才可以使用。 两者的最大区别是接口可以实现多继承,而抽象类只能是单继承。 接口中不能包含成员属性,而抽象类中可以有成员属性。 接口中的抽象方法必须是public或者无访问修饰词,接口中的抽象方法不能用abstract来修饰。 抽象类中的方法可以是普通方法,也可以是抽象方法,如果是抽象方法,一定需要使用abstract来修饰。

113、 $_REQUEST、$_GET、$_POST、$_COOKIE 的关系和区别: 1.关系:$_REQUEST包含了$_GET、$_POST、$_COOKIE等的所有内容,是它们的集合体。 2.通过$_REQUEST获取变量值,PHP页面因为不确定它是哪种传值方式, 因此会根据php.ini中的配置来接收值。 php.ini里可以设置,variables_order = “GPC”。其含义是GET,POST,COOKIE. 所以PHP页面会先从$_GET中获取,再从$_POST中获取,然后从$_COOKIE中获取。 新获得的值会覆盖之前获取到的值。 因此从表现形式上看,$_REQUEST最后是获取$_COOKIE中的值,如果$_COOKIE中没有值, 会获取$_POST中的值,如果$_POST没有获取到 ,就去$_GET中获取。 如果$_GET中也没有该值,那么$_REQUEST就返回null。

114、 什么是多条件查询(复合查询),如何实现多条件查询? 如何实现万能查询呢?查询的时候要填写查询条件,这些条件会通过表单进行提交。 首先需要检查提交的条件是否为空。如果不为空,就认为这个值是要被当作条件, 我们就可以使用字符串连接的方式来组合一个sql查询语句。 当执行后获取查询结果。

115. 文件上传需要注意哪些细节?怎么把文件保存到指定目录?怎么避免上传文件重名问题? 1). 首现要在php.ini中开启文件上传; 2). 在php.ini中有一个允许上传的最大值,默认是2MB。必要的时候可以更改; 3). 上传表单一定要记住在form标签中写上enctype=\; 4). 提交方式 method 必须是 post; 5). 设定 type=\的表单控件,并且必须具有name属性值; 6). 为了上传成功,必须保证上传文件的大小是否超标、文件类型是否符合要求,上传后存放的路径是否存在; 7). 表单提交到接收页面,接收页面使用$_FILES来接收上传的文件。 $_FILES是个多维数组。第一维下标是上传控件的name,二维下标分别为name/type/tmp_name/size/error。分别代表 文件名、文件类型、上传到临时目录下的临时文件名、文件大小、是否有错误。 如果是批量上传,那么二维下标就是数组,而并非是字符串。 8). 文件上传后是被放置在服务器端临时路径下,需要使用move_uploaded_file ()函数,才可以将上传后的 文件保存到指定目录。 9). 为了避免上传文件重名,可以通过上传的文件名获取到文件后缀,然后使用时间戳+文件后缀的方式为文件重新命名。

119. 什么是事务?什么是回滚?事务的作用是什么? 事务就是组合起来的几个独立的sql操作。如果其中一项失败,那么就让这几个组合起来的sql操作都 回退到未执行状态。这就是事务的回滚。 mysql中MyISAM存储引擎的表不支持事务,只有InnoDB 存储引擎的表才支持事务,为了让事务正常执行, 就需要让参与事务的所有数据表都设置成innoDB类型。 事务被包装在了 BEGIN 和 COMMIT 语句之间。在没有使用 COMMIT 语句的情况下,对数据库的操作不是永久的, 一旦运行了 ROLLBACK,就会被回退。只有执行了COMMIT,数据表中的信息才被改动。 事务的目的就是为了保证数据的完整性。

120. 模拟SESSION机制实现数据库存放会话数据有什么作用?【备用】

如果使用默认的SESSION机制,大家都知道默认的SESSION_ID是存放在COOKIE中,用户的身份是靠SESSION_ID来识别的,

本文来源:https://www.bwwdw.com/article/wdot.html

Top