文档库 最新最全的文档下载
当前位置:文档库 › PHP与Mysql练习题二

PHP与Mysql练习题二

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

echo ((3+(5-7*9+8)%(6-4/2)));

?>

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)

include("conn.php");

mysql_query("set names gb2312");

mysql_select_db("test");

$sqlstr="delete from sanguo";

$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="multipart/form-data" 属性

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) 33%66 的结果为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,

没有任何属性的对象,

没有赋值的变量。

7. 如果定义了一个变量$a ,但是没有赋初始值

那么$a==0吗?

$a==false吗?

$a==''吗?

$a==NULL吗?

$a===NULL吗?答:echo=>什么都没有, var_dump=>NULL

empty($b)==true吗?————————————echo=>1 , var_dump=>bool(true)

此时如果输出$a++是多少?———————echo=>什么都没有, var_dump=>NULL 如果输出++$a又是多少?—————————echo=>1 , var_dump=>int(1)

8. 字符串怎么转成整数,有几种方法?怎么实现?

强制类型转换: (整型)字符串变量名;

直接转换:settype(字符串变量,整型);

intval(字符串变量);

9. 标量数据和数组的最大区别是什么?

一个标量只能存放一个数据,而数组可以存放多个数据。

10. 常量如何定义? 如何检测一个常量是否被定义?常量的值只能是哪些数据类型?

define()//定义常量, defined()//检查常量是否定义

常量的值只能是标量类型的数据。

11. 常量分为系统内置常量和自定义常量。请说出最常见的几个系统内置常量?

__FILE__ , __LINE__ , PHP_OS , PHP_VERSION

12. 如果定义了两个相同的常量,前者和后者哪个起作用?

前者起作用,因为常量一旦定义就不能被重新定义或者取消定义。

13. 常量和变量有哪些区别?

1)常量前没有$符号;

2)常量只能通过define()定义,而不能通过赋值语句定义;

3)常量可以在任何地方定义和访问,而变量有全局和局部之分;

4)常量一旦定义就不能被重新定义或者取消定义,而变量而通过赋值方式重新定义;

5)常量的值只能是标量数据,而变量的数据库类型有8种原始数据类型。

14. PHP中常用的几个预定义的全局数组变量是哪些?

有9大预定义的内置数组变量:

$_POST, $_GET, $_REQUEST, $_SESSION, $_COOKIE, $_FILES,$_SERVER, $_ENV, $GLOBALS

15. 在实际开发中,常量最常用于哪些地方?

1)连接数据库的信息定义成常量,如数据库服务器的用户名、密码、数据库名、主机名;

2)将站点的部分路径定义成常量,如web绝对路径,smarty的安装路径,model、view 或者controller的文件夹路径;

3)网站的公共信息,如网站名称,网站关键词等信息。

16. 函数的优越性有哪些?

提高程序的可维护性

提高软件的可靠性

提高程序的可重用性

提高程序的开发效率

17. 如何定义一个函数?函数名区分大小写吗?

1)使用function 关键字;

2)函数命名规则和变量一样,以字母或者下划线开头,而不能以数字开头;

3)函数名不区分大小写;

4)函数名不可以使用已经声明过的或者系统自建的函数名称。

18. 什么是变量的能见度或者说是变量作用域?

就是变量在程序中的可作用范围。根据变量的能见度,变量分为局部变量和全局变量。

19. 什么是局部变量和全局变量?函数内是否可以直接调用全局变量?

局部变量是函数内部定义的变量,其作用域是所在的函数。如果函数外还有一个跟局部变量名字一样的变量,

程序会认为它们两个是完全不同的两个变量。当退出函数的时候,其中的局部变量就同时被清除。

全局变量是定义在所有函数以外的变量,其作用域是整个php文件,但是在用户自定义的函数内部是无法使用的。

如果一定要在用户自定义的函数内部使用全局变量,那么就需要使用global关键字声明。

也就是说如果在函数内的变量前加上golbal来修饰,那么函数内部就可以访问到这个全局变量,

不仅可以利用这个全局变量进行运算而且可以对这个全局变量进行重新赋值。

全局变量还可以使用$GLOBALS['var'] 来调用。

20. global关键词如何使用?预定义的全局变量数组$GLOBALS如何使用?

21. 什么是静态变量?

如果一个函数内定义的变量前使用关键字static来声明,那么该变量就是静态变量。

一般函数内的变量在函数调用结束后,其存储的数据将被清除,所占的内存空间也被释放。而使用静态变量时,

该变量会在函数第一次被调用时被初始化,初始化后该变量也不会被清除,当再次调用该函数时,这个静态变量

不再被初始化,而能保存上次函数执行完后的值。可以说静态变量在所有对该函数的调用之间共享。

22. php中函数传递参数的方式有哪些?两者有什么区别?

按值传递和按地址传递(或按引用传递)

(1)按值传递: 待传递的变量,与传递给函数之后的变量是存储在不同的空间中。所以函数体内对

该变量值做的修改,不影响原本的变量值。

(2)按地址传递: 使用& 符号,表明该参数是以地址的方式传递值。并不会将主程序中的指定数值或目标变量传递给函数,

而是把该数值或变量的内存储存区块地址导入函数之中,所以函数体内的该变量和主程序中的该变量在内存

中是同一个。函数体做的修改,直接影响到函数体外部的该变量的值。

23. 什么是递归函数?如何进行递归调用?

递归函数其实就是调用自身的函数,但是必须满足以下两个条件:

1)在每一次调用自身时,必须是更接近于最终结果;

2)必须有一个确定的递归终止条件,不会造成死循环。

举例说明:

在实际工作中往往会在遍历文件夹的时候使用。

如果有个例子是希望获取到目录windows下所有的文件,那么先遍历windows目录,如果发现其中还有文件夹,那么就会调用自身,继续往下寻找,依次类推,直到遍历到再也没有文件夹为止,这也就是意味着遍历出来了所有的文件。

24. 判断一个函数是否存在?

function_exists( string $function_name ) 如果存在,返回true, 不存在则返回false。

25. func()和@func()之间有什么区别?

第二个函数调用失败不会报错,第一个会报错

26. include()和require()函数的用法和区别是什么?include_once()和require_once()呢?

include和require出现错误后的错误级别不一样

include_once()和require_once()在加载之前要判断是否已经导入

27. 说出前置++和后置++的区别?

前置++是先将变量增加1,然后在将值赋值给原来的变量;

后置++是先返回变量的当前值,然后再将变量的当前值增加1.

28. 字符串运算符“.”与算术运算符“+”有什么区别?

当“a”“b”之间使用.时认为是连字符。如果两者间是+的时候php会认为是一次运算。

1)如果+号两边的字符串是数字组成的,那么会将字符串自动转为整型;

2)如果+号两边是纯粹的字母,那么会输出0;

3)如果+号两边的字符串是以数字开头的,那么会截取字符串开头的数字,然后进行运算。

29. 什么是三目(或三元)运算符?

根据一个表达式的结果在另两个表达式中选择一个。

例如: ($a==true) ? 'good':'bad';

30. 控制流程语句有哪些?

1:三种程序结构顺序结构、分支结构、循环结构

2:分支:if/esle/esleif/ switch/case/default

3: switch 需要注意的:

case子句中的常量可以是整型、字符串型常量、或者常量表达式,不允许是变量。

同一个switch子句中,case的值不能相同,否则只能取到首次出现case中的值。

4: 循环for while do...while

do...while 后面必须加入分号结尾。

while 和do...while 的区别

5:break 和continue 的区别。

break可以终止循环。

continue没有break强大,只能终止本次循环而进入到下一次循环中。

31. 数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式有哪两种?

数组是一个可以存储一组或一系列数值的变量(复合型变量)

索引数组(索引值为数字,以0开始)和关联数组(以字符串作为索引值)

数组的赋值方式有哪两种?

数组的声明方式主要有两种。

1.通过array()函数声明数组;

可以通过key=>value的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。

2.直接为数组元素赋值,不需要调用array()函数。例如:

$arr[0] = 1;

$arr[1] = 2;

特别注意:

数组的下标如果是等价于整数的字符串值(但不能以0开头),则会被当作整数对待。

例如:$array[3] 与$array['3'] 引用的是相同的一个元素,而$array['03'] 引用的则就是另外的一个元素了。

32.数组如何遍历?

①for循环

②foreach循环,这是最常用的遍历方式。用法如下:foreach($arr as $key=>$value){}

③list each 和while 配合起来循环

33. foeach数组的时候指针是如何指向的?list()/each()/while()循环数组的时候指针如何指向的呢?

当foreach开始执行的时候,数组内部的指针会自动指向第一个单元。因为foreach所操作的是指定数组的拷贝,而不是该数组本身。

而each()一个数组后,数组指针将停留在数组中的下一个单元或者碰到数组结尾时停留在最后一个单元。如果要再次使用each()遍历数组,必须要使用reset().

reset()将数组的内部指针倒回到第一个单元并返回第一个数组单元的值。

34. 如何计算数组长度(或者说计算数组中所有元素的个数)?字符串怎么取长度?

count() -- 计算数组中的元素个数。

可以使用count(数组名)或者count(数组名,1),如果有第二个参数,并且是数字1,则表示递归统计数组元素的个数。

如果第二个参数是数字0,则等同于只有一个参数的count()函数。

sizeof() -- count() 的别名

字符串:strlen()、mb_strlen();

35. 数组中相关的常用函数有哪些?

1)count --(sizeof别名)—计算数组中的单元数目或对象中的属性个数例如:int count ( mixed $var [, int $mode ] ) $var 通常都是数组类型,任何其它类型都只有一个单元。$mode 默认值为0. 1为开启递归地对数组计数

2)in_array ( mixed $needle , array $haystack [, bool $strict ] ) —检查数组中是否存在某个值。

如果needle 是字符串,则比较是区分大小写的。

如果第三个参数strict 的值为TRUE 则in_array() 函数还会检查needle 的类型是否和haystack 中的相同。

3)array_merge(array $array1 [, array $array2 [, array $... ]] ) 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

特别注意:如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引4)数组与字符串之间的转换

(1)explode ( string $separator , string $string [, int $limit ] ) 使用一个分隔字符来分隔一个字符串。

(2)implode ( string $glue , array $arr ) 使用一个连接符将数组中的每个单元连接为一个字符串。

join 为implode 的别名

5)sort(array &$array [, int $sort_flags ]) —对数组按照值排序,当本函数结束时数组单元将被从最低到最高重新安排。

36. 数组合并函数array_merge()和数组加法运算$arr + $arr2 的区别是什么?

array_merge()->使用array_merge(),如果是关联数组合并,如果数组的键名相同,那么后面的值将覆盖前者;如果是数字索引数组合并,则不覆盖,而是

后者附加到前者后面。

"+"->使用数组加法运算,与array_merge()不同,加法运算不管是关联数组还是数字索引数组,都是将相同键名的的值舍弃,

也就是只保留首次出现该键名的元素,后来的具有相同键名的元素都不会被加进来。

37. 字符串定义的时候单引号和双引号有什么区别?

38. echo(),print(),print_r()的区别?

(1)echo 是语法,Output one or more strings,没有返回值;

(2)print 是函数,不能输出数组和对象,Output a string,print有返回值;

(3)print_r 是函数,可以输出数组。print_r是个比较有意思的函数,可以输出stirng、int、float、

array、object等,输出array时会用结构表示,print_r输出成功时返回true;而且print_r 可以通过print_r($str,true)来,使print_r不输出而返回print_r处理后的值。此外,对于echo 和print,基本以使用echo居多,因为其效率比print要高。

39. 按照功能分类说说都有哪些字符串处理函数?这些函数的作用是什么?

A. 字符串输出函数

(1)echo $a,$b,$c......; 是一个语言结构,而不是一个真正的函数。

(2)print($a) 本函数输出字符串。若成功则返回1,失败返回0

(3)print_r($a)

(4)var_dump($a); 能输出类型、长度、值

B. 去除字符串首尾空格的函数:trim ltrim rtrim(别名:chop)使用第二个参数,还可以去除指定的字符。

C. 转义字符串函数:addslashes()

D. 获取字符串长度的函数:strlen()

E. 截取字符串长度的的函数:substr()

F. 检索字符串函数:strstr() , strpos()

G. 替换字符串函数:str_replace()

40. 请给出以下问题的正确答案?

1).$arr = array('james', 'tom', 'symfony');请将$arr数组的值用’,’分割并合并成字符串输出?

echo implode(‘,’,$arr);

2).$str = ‘jack,james,tom,symfony’; 请将$str用’,’分割,并把分割后的值放到$arr 数组中?

$arr = explode(‘,’,$str);

3).$arr = array(3,7,2,1,’d’,’abc’); 请将$arr按照从大到小的顺序排序,并保持其键值不变?

arsort($arr); print_r($arr);

4).$mail = “gaofei@https://www.wendangku.net/doc/ba7867719.html,”; 请将此邮箱的域(https://www.wendangku.net/doc/ba7867719.html,)取出来并打印,看最多能写出几种方法?

echo strstr($mail,'163');

echo substr($mail,7);

$arr = explode("@",$mail); echo $arr[1];

5). 如果有一个字符串,该字符串是“123,234,345,”。请问如何切割掉这个字符串最后一个逗号?

6). 获取随机数的函数有哪几个?mt_rand() 和rand()哪个执行速度快?

41.页面字符出现乱码,怎么解决?

1.首先考虑当前文件是不是设置了字符集。查看是不是meta标签中写了charset,如果是php页面还可以看看是不是

在header()函数中指定了charset;

例如:

header(“content-type:text/html;charset=utf-8”);

2.如果设置了字符集(也就是charset),那么判断当前文件保存的编码格式是否跟页面设置的字符集保持一致,

两者必须保持统一;

3.如果涉及到从数据库提取数据,那么判断数据库查询时的字符集是否跟当前页面设置的字符集一致,两者必须统一,

例如:mysql_query(“set names utf8”)。

42. 正则表达式是什么?php中有哪些常用的跟正则相关的函数?请写出一个email的正则,中国手机号码和座机号码的正则表达式?

正则表达式是用于描述字符排列模式的一种语法规则。正则表达式也叫做模式表达式。

网站开发中正则表达式最常用于表单提交信息前的客户端验证。

比如验证用户名是否输入正确,密码输入是否符合要求,email、手机号码等信息的输入是否合法。

在php中正则表达式主要用于字符串的分割、匹配、查找和替换操作。

preg系列函数可以处理。具体有以下几个:

string preg_quote ( string str [, string delimiter] )

转义正则表达式字符正则表达式的特殊字符包括:. \\ + * ? [ ^ ] $ ( ) { } = ! < > | :。

preg_replace -- 执行正则表达式的搜索和替换

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )

preg_replace_callback -- 用回调函数执行正则表达式的搜索和替换

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] ) preg_split -- 用正则表达式分割字符串

array preg_split ( string pattern, string subject [, int limit [, int flags]] )

43. 如果想过滤掉某个字符串中所有的html标记使用哪个函数?

44. preg_replace()和str_ireplace()两个函数在使用上有什么不同?preg_split()和split()函数如何使用?

45. 获取当前时间戳的函数主要有哪些?用PHP打印出今天的时间,格式是2010-12-10 22:21:21?

用PHP打印出前一天的时间格式是2010-12-10 22:21:21?如何把2010-12-25 10:30:25变成unix时间戳?

echo date ("Y-m-d H:i:s" ,strtotime(‘-1,days’));

date('Y-m-d H:i:s',time());

$unix_time = strtotime("2009-9-2 10:30:25");//变成unix时间戳

echo date("Y-m-d H:i:s",$unix_time);//格式化为正常时间格式

46. 在url中用get传值的时候,若中文出现乱码,应该用哪个函数对中文进行编码?

用户在网站表单提交数据的时候,为了防止脚本攻击(比如用户输入),php端接收数据的时候,应该如何处理?

使用urlencode()对中文进行编码,使用urldecode()来解码。

使用htmlspecialchars($_POST[‘title’])来过滤表单传参就可以避免脚本攻击。

47. 连接数据库操作的步骤是什么?每一步的返回值是什么数据类型?尤其是mysql_query()返回什么数据类型?

48. 说说mysql_fetch_row() 和mysql_fetch_assoc()和mysql_fetch_array之间有什么区别?

第一个是返回结果集中的一行作为索引数组,第二个是返回关联数组,而第三个既可以返回索引数组也可以返回关联数组,取决于它的第二个参数MYSQL_BOTH MYSQL_NUM MYSQL_ASSOC 默认为MYSQL_BOTH

$sql =”select * from table1”;

$result = mysql_query($sql);

mysql_fetch_array($result, MYSQL_NUM);

49. 请说出目前学过的返回是资源的函数?

答:mysql_connect();

mysql_query();只有这执行select的时候成功,才返回资源,失败返回FALSE

fopen();

50. 打开、关闭文件分别是什么函数?文件读写是什么函数?删除文件是哪个函数?

判断一个文件是否存在是哪个函数?新建目录是哪个函数?

51. 文件上传需要注意哪些细节?怎么把文件保存到指定目录?怎么避免上传文件重名问题?

1.首现要在php.ini中开启文件上传;

2.在php.ini中有一个允许上传的最大值,默认是2MB。必要的时候可以更改;

3.上传表单一定要记住在form标签中写上enctype="multipart/form-data";

4. 提交方式method 必须是post;

5. 设定type="file" 的表单控件;

6.要注意上传文件的大小MAX_FILE_SIZE、文件类型是否符合要求,上传后存放的路径是否存在。

可以通过上传的文件名获取到文件后缀,然后使用时间戳+文件后缀的方式为文件重新命名,这样就避免了重名。

可以自己设置上传文件的保存目录,与文件名拼凑形成一个文件路径,使用move_uploaded_file(),就可以完成

将文件保存到指定目录。

52. $_FILES是几维数组?第一维和第二维的索引下标分别是什么?批量上传文件的时候需

要注意什么?

二维数组。第一维是上传控件的name,二维下标分别为name/type/tmp_name/size/error.

57. 什么是会话控制?

简单地说会话控制就是跟踪和识别用户信息的机制。会话控制的思想就是能够在网站中跟踪一个变量,通过这个变量,

系统能识别出相应的用户信息,根据这个用户信息可以得知用户权限,从而展示给用户适合于其相应权限的页面内容。

目前最主要的会话跟踪方式有cookie,session。

58. 会话跟踪的基本步骤

1).访问与当前请求相关的会话对象

2).查找与会话相关的信息

3).存储会话信息

4).废弃会话数据

59. 使用cookie的注意事项有哪些?

1)setcookie()之前不可以有任何页面输出,就是空格,空白行也不可以;

2)setcookie()后,在当前页面调用$_COOKIE['cookiename']不会有输出,必须刷新或到下一个页面才可以看到cookie值;

3)不同的浏览器对cookie处理不同,客户端可以禁用cookie,浏览器也可以闲置cookie 的数量,一个浏览器能创建的cookie数量最多300个,并且每个不可以超过4kb,每个web站点能设置的cookie总数不能超过20个。

4)cookie是保存在客户端的,用户禁用了cookie,那么setcookie就不会起作用了。所以不可以过度依赖cookie。

60. 使用session的时候,通过什么来表示当前用户,从而与其他用户进行区分?

sessionid,通过session_id()函数可以取得当前的session_id。

61. session和cookie的使用步骤分别是什么?什么是sesssion和cookie的生命周期?session 和cookie的区别是什么?

cookie是保存在客户端机器的,对于未设置过期时间的cookie,cookie值会保存在机器的内存中,只要关闭浏览器则

cookie自动消失。如果设置了cookie的过期时间,那么浏览器会把cookie以文本文件的形式保存到硬盘中,

当再次打开浏览器时cookie值依然有效。

session是把用户需要存储的信息保存在服务器端。每个用户的session信息就像是键值对一样存储在服务器端,

其中的键就是sessionid,而值就是用户需要存储信息。服务器就是通过sessionid来区分存储的session信息是

相关文档