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!\n";
}
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