PHP复习题(选择题)
1. 如何使用 PHP 输出 “hello world”?
A. "Hello World";
B. echo "Hello World";
C. Document.Write("Hello World");
答案:B
2. 下面代码执行结果是?
<?php
FUNCTION TEST()
{
ECHO "HELLO WORLD! ";
}
test();
?>
A. HELLO WORLD!
B. 没有任何输出
C. 编译错误,代码无法运行
D. hello world!
答案:A
解析:用户定义的函数和语言关键字对大小写不敏感。
3. 使用 PHP 创建注释的方法下面哪一种正确?
A. // 注释写在这里
B.
C. # 注释写在这里
D. 以上全部正确
答案:D
解析:这三个都是有效的,它们是从 C、C++ 和 shell 代码中借用的。
4. 在 PHP 中未定义的值的变量使用以下哪个关键字表示?
A. undef
B. null
C. None
D. PHP 中没有这样的概念
答案:B
解析:在 PHP 中,不区分大小写的关键字 NULL 用于表示变量没有定义值的情况。
5. 下面哪个选项用于声明常量?
A. constant
B. define
C. #pragma
D. def
答案:B
解析:声明常量使用函数 define,例如:define(PAI,3.14); 也可以使用关键字const定义常量,例如:const PAI=3.14;
6. 以下代码打印的结果是?
<?php
$var = '0';
if ($var) {
echo 'true';
} else {
echo 'false';
}
?>
A. true
B. false
答案:B
解析:字符串' 0' 是转换为布尔值的特殊情况,它转换为 false。
7. 执行以下代码,$var 的值是多少?
$var = 1 / 2;
A. 0
B. 0.5
C. 1
答案:B
解析:PHP 中没有整数除法,所以它的值是 0.5。
8. 以下代码定义了一个数组,如何访问' d' 的值?
<?php
$a = array(
'a',
2 => 'b',
1 => 'c',
'd'
);
?>
A. $a[0]
B. $a[1]
C. $a[2]
D. $a[3]
答案:D
解析:'d' 的值为最大的整数索引+1。
9. 在 PHP 中,所有的变量以哪个符号开头?
A. !
B. &
C. $
D. @
答案: C
10. 如何从使用 “get” 方法提交的表单中获取数据?
A. $_GET[];
B. $_POST[];
C. Request.QueryString;
D. Request.Form;
答案:A
11. 在 PHP 中创建函数myFunction()的正确方法是?
A. function myFunction()
B. create myFunction()
C. new_function myFunction()
D. function $myFunction()
答案:A
12. 给 $count 变量加 1 的正确方法是?
A. ++count
B. $count++;
C. count++;
D. $count =+1
答案:B
13. 以下程序段,打印的结果是?
<?php
$a = array();
if ($a == null) {
echo 'true';
} else {
echo 'false';
}
?>
A. true
B. false
C. 语法有错误
答案:A
解析:空数组转化为 null。
14. 以下程序段,打印的结果是?
<?php
if (null === false) {
echo 'true';
} else {
echo 'false';
}
?>
A. true
B. false
C. 语法有误
答案:B
解析:=== 是值相等且类型相同,false 属于布尔类型,而 null 属于特殊的 null 类型。
15. 以下打印的结果是?
<?php
$RESULT = 11 + 011 + 0x11;
echo "$RESULT";
?>
A. 11
B. 22
C. 33
D. 37
答案:D
解析:十进制加八进制加十六进制数,11 + 9 + 17 = 37
16. $var 的值是多少?
$var = true ? 1 : false ? 2 : 3;
A. 1
B. 2
C. 3
答案:B
解析:三元运算符从左到右求值,先算 true?1:false | true 判断 等于 1
然后是1?2:3 , 1是true 判断所以$var值是 2
17. 以下打印的结果是?
<?php
if ('2' == '02') {
echo 'true';
} else {
echo 'false';
}
?>
A. true
B. false
答案:A
注:数值字符串作为整数进行比较。
18. 以下打印的结果是?
<?php
$var = 'a';
$VAR = 'b';
echo "$var$VAR";
?>
A. aa
B. bb
C. ab
答案:C
解析:变量名区分大小写
19. 下面关于代码的哪些陈述是正确的?
<?php
class A {}
class B {}
class C extends A, B {}
?>
A. 代码很规范
B. 类不能为空
C. 类 C 不能同时继承 A 和 B
D. 类定义中缺少修饰限定符 “public” 或 “private”
答案:C
解析:PHP中一个子类只能继承一个父类。
20. strpos() 函数的作用是什么?
A. 查找字符串的最后一个字符
B. 查找字符串在另一字符串中第一次出现的位置
C. 在字符串中搜索某个字符
D. 查找字符串在另一字符串中最后一次出现的位置
答案:B
解析:strpos() 函数查找字符串在另一字符串中第一次出现的位置,对大小写敏感。
21. GET 方法和 POST 方法的区别是什么?
A. GET 显示在地址栏 URL 中输入的表单值,而 POST 则没有。
B. POST 显示在地址栏 URL 中输入的表单值,而 GET 则没有。
C. 没什么区别。
答案:A
解析:GET 方式以显式提交表单,可以在 URL(地址栏)看见我们传的参数 POST 方式是隐式传值,不可见。
22. 如何在HTML <form> 中创建PHP数组?
A. <input name= MyArray[]/>
B. <input ="MyArray[]" />
C. <input name="MyArray[]" />
D. <input MyArray[] />
答案:C
解析:<input name=”MyArray[]”> 请注意在变量名后面的中括号,它就用来生成数组。
23. echo 和 print 有什么区别?
A. 它们的作用是一样的
B. print 可以接受多个参数,而 echo 不能
C. echo可以接受多个参数,而 print 不能
D. print 是一个函数,而 echo 不是
答案:C
解析:echo 可以输出多个字符串,print 只能输出一个字符串,它可以表现得像一个函数。
24. 用户 IP 地址存储在哪个变量中?
A. $_SERVER['DOMAIN']
B. $GLOBALS
C. $_ENV
D. $_SERVER['REMOTE_ADDR']
答案:D
解析:使用 $_SERVER[‘REMOTE_ADDR’] 获取客户端 IP。
25. 哪个函数用于去除字符串的开头和结尾空格 (或其他字符) ?
A. trim_str()
B. strip_str()
C. strip()
D. trim()
答案:D
解析:trim() 移除字符串两侧的空格,如果加参数,可以移除其他字符。
26. $_SESSION[] 的用途是什么 ?
A. 用于注册全局变量
B. 用于初始化会话
C. 用于存储当前会话的变量
D. 以上都不是
答案:C
解析:在 PHP 中,使用是通过预定义数组 $_SESSION 的存储和读取 session。
27. 关于Cookie 的描述正确的是?
A. Cookie 存储于用户本地磁盘上,里面保存着浏览器访问过的网页的一些信息(比如访问时间、地址等)。
B. Cookie 存储在服务端,用于数据交互。
C. PHP 不支持 Cookie 操作。
答案:A
28. 以下哪种类型的变量是只有一个值的特殊类型 NULL ?
A. 字符串
B. 整型
C. 布尔型
D. NULL
答案:D
解析:NULL 是一种特殊类型,只有一个值 NULL。
29. 下列哪个运算符用于连接两个字符串?
A. .
B. +
C. append
D. 以上都不对
答案:A
解析:要将两个字符串变量连接在一起,请使用点(.)运算符。
30. 下面哪个函数用于生成随机数?
A. srand()
B. rand()
C. random()
D. 以上都不对
答案:B
解析:rand() 函数的作用是生成一个随机数,这个函数可以在给定的范围内生成数字。
31. 下面哪个函数用于检查PHP中是否已经设置了会话变量?
A. session_start()
B. isset()
C. session_destroy()
D. unset()
答案:B
解析:使用 isset() 函数检查是否已经设置了会话变量。
32. 下列哪个选项提供上传文件的实际名称?
A. $_FILES['file']['tmp_name']
B. $_FILES['file']['name']
C. $_FILES['file']['size']
D. $_FILES['file']['type']
答案:A
解析:$_FILES['file']['name'] 提供上传文件的实际名称。
33. 下面哪个选项用于销毁 session?
A . session_start()
B. $_SESSION[]
C. isset()
D. session_destroy()
答案:D
解析:session 可以由 session_destroy()函数销毁,也可使用使用 $_SESSION = array() 清空 $_SESSION 数组。
34. 下面哪个选项用于设置 cookie?
A. setcookie() 函数
B. $HTTP_COOKIE_VARS 变量
C. $_COOKIE 变量
D. isset() 函数
答案:A
解析:PHP提供了setcookie() 函数来设置Cookie。
35. 以下哪项关于 NULL 是正确的?
A. NULL 是一种特殊类型,它只有一个值 NULL。
B. 特殊的常量 NULL 按惯例大写,但实际上它不区分大小写
C. 以上两个都正确
D. 以上都不对
答案:C
解析:NULL 属于特殊类型,不区分大小写,只有一个值 NULL。
36. 下面哪种类型的变量是浮点数,比如 3.14159 或 49.1?
A. integer
B. double
C. boolean
D. string
答案:B
解析: integer – 整型,double – 浮点型,boolean – 布尔型,string – 字符串
37. 下面哪个函数使用 PHP 连接 MySQL 数据库?
A. mysql_connect()
B. mysql_query()
C. mysql_close()
D. 以上都不对
答案:A
解析:PHP 提供 mysql_connect() 函数来打开数据库连接,新版本建议使用 MySQLi 或 PDO 来连接。
38. 下面哪个异常处理类的方法在发生错误时检索错误消息?
A. getMessage()
B. getCode()
C. getFile()
D. getLine()
答案:A
解析:异常处理类方法 getMessage() 返回异常的消息。
39. 关于常量,下列哪个选项是正确的?
A. 常量与变量不同的是,名称前不需要一个带 $
B. 只有标量数据(布尔值、整数、浮点数和字符串)可以定义为常量
C. 以上都是
D. 以上都不是
答案:C
40. 下列哪个关键字用于引用类本身中的属性或方法?
A. protected
B. $this
C. public
D. private
答案:B
解析:通过 $this 引用类本身中的属性或方法。
41. 下列表达式中,哪个不是有效的赋值运算符?
A. $b <= $b
B. $b *= $b
C. $b += $b
D. $b -= $b
答案:A
解析: < = 是比较运算符,不是赋值运算符。
42. 下面哪个选项可以用来获取通过 PHP 中的 GET/POST 方法发送的信息?
A. $_REQUEST
B. $REQUEST
C. $REQUEST_PAGE
D. 以上都不是
答案:A
解析: $_REQUEST 变量可用于从 GET 和 POST 方法发送的表单数据中获取结果。
43. 下面哪个语句将用于从 MySQL 查询结果中获取单行记录?
A. mysql_connect()
B. mysql_query()
C. mysql_fetch_array()
D. mysql_fetch_row()
答案:D
解析:mysql_fetch_row() 函数从结果集中取得一行作为数字索引数组。
44. 使用myslq扩展连接 MySql 数据库的正确语法是?
A . mysql_connect($username,$password)
B. connect_mysql($username,$password)
C. mysql_connect("localhost",$username,$password)
答案:C
解析:mysql_connect($hostname,$username,$password)。
45. 下面哪个关键字与 Exception 对象一起使用?
A. final
B. throw
C. exception
D. throws
答案:B
解析:异常(Exception)用于在指定的错误发生时改变脚本的正常流程,结合 try, throw 和 catch 使用。
46. 下列哪个关键字用于设置类是无法继承的?
A. final
B. break
C. end
D. stop
答案:A
解析:如果一个类被声明为 final,则不能被继承。
47. PHP 支持哪些循环语句?
A. while 循环
B. for 循环
C. do...while 循环
D. 以上都支持
答案:D
48. 下列哪个函数检查数组中是否存在指定值?
A. key()
B. extract()
C. krsort()
D. in_array()
答案:D
解析:in_array() 函数搜索数组中是否存在指定的值。
49. PHP 数字索引数组下标以___开始 ?
A. 0
B. 1
C. 2
D. 以上都不对
答案:A
解析:索引数组下标从 0 开始。
50. PHP中以__(双下划线)开头的函数称为 ?
A. 自定义方法
B. 构造方法
C. 内置方法
D. 魔术方法
答案:D
解析:PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。
51. 假设类名为 Myclass,下面哪个可以用来在 PHP 中实例化对象 ?
A. obj = new Myclass ();
B. $obj = new $Myclass;
C. $obj = new Myclass;
D. $obj = new Myclass();
答案:D
解析:通过 new 关键字实例化:$obj = new foo ();
52. 如果类是 myClass,下面哪个方法是调用类常量PI的正确方法 ?
A. echo myClass =PI;
B. echo myClass ::PI;
C. echo myClass ->PI;
D. echo PI;
答案:B
解析:通过 类名 :: 常量名 调用类常量。
53. 下列哪个函数可用于连接数组元素以形成一个带分隔符的字符串 ?
A. concatenate()
B. concat()
C. implode()
D. explode()
答案:C
解析:implode() 函数返回一个由数组元素组合成的字符串。
54. 下列哪个函数用于将数组构成get查询字符串?
A. implode()
B. explode()
C. http_build_query()
D. prepare()
答案:C
解析:http_build_query()函数用于将关联数组转换为GET查询字符串。
55. 下列哪个关键字用于从同一个类(而不是子类)访问静态方法或属性?
A. set
B. self
C. strat
D. static
答案:B
解析:self 可以访问本类中的静态属性和静态方法,可以访问父类中的静态属性和静态方法。用 self 时,可以不用实例化。
56. 下列哪个变量不能在静态方法中使用?
A. $date
B. $set
C. $get
D. $this
答案:D
解析:静态方法和属性又被称为类方法和类属性,因此不能在对象中使用伪变量 $this,可使用self。
57. 把所有 p 元素的背景色设置为红色的正确 jQuery 代码是?
A. $("p").manipulate("background-color","red");
B. $("p").layout("background-color","red");
C. $("p").style("background-color","red");
D. $("p").css("background-color","red");
答案:D
58. 通过 jQuery,$(“div.intro”) 能够选取的元素是?
A. class="intro" 的首个 div 元素
B. id="intro" 的首个 div 元素
C. class="intro" 的所有 div 元素
D. id="intro" 的所有 div 元素
答案:C
59.通过 $("div#intro .head") 选择器选取哪些元素?
A. id="intro" 或 class="head" 的所有 div 元素
B. class="intro" 的任何 div 元素中的首个 id="head" 的元素
C. id="intro" 的所有 div 元素中的 class="head" 的所有元素
答案:C
60. 下面哪种 jQuery 方法用于设置被选元素的一个或多个样式属性?
A. style()
B. html()
C. css()
答案:C