一、單選題(共27題,每題5分)
1.閱讀下面PHP代碼,並選擇輸出結果( )

A、0
B、1
C、2
D、3
參考答案:D
答案解析:static屬性常駐內存
2.PHP單例模式操作描述錯誤的是?
A、單例模式第一次實例會被建立以后執行可以直接使用
B、需要一個保存類的唯一實例的靜態成員變量
C、構造函數和克隆函數必須聲明為私有的
D、必須提供一個訪問這個實例的公共的靜態方法
參考答案:A
答案解析:PHP中,所有的變量無論是全局變量還是類的靜態成員,都是頁面級的,每次頁面被執行時, 都會重新建立新的對象,都會在頁面執行完畢后被清空,這樣似乎PHP單例模式就沒有什么意義了, 所以PHP單例模式只是針對單次頁面級請求時出現多個應用場景並需要共享同一對象資源時有意義
3.下面那個不是mysql存儲引擎的鎖類型?
A、表鎖
B、頁鎖
C、行鎖
D、無
參考答案:B
答案解析:mysql中myisam是有表鎖,innodb是行鎖,基於索引加鎖,如果where條件沒有索引,是所有行加鎖;sql server才有頁鎖
4.以下哪條不是PHP語言的特性?
A、開源
B、免費
C、基於客戶端
D、便捷高效
參考答案:C
答案解析:PHP語言的特性為:開源、免費和便捷高效。
5.關於PHP模式修飾符說法錯誤的是?
A、i 大小寫不敏感匹配
B、m ^將只匹配字符串的開頭
C、x 空白和#注釋將被忽略
D、將替換后的字符串作為php代碼評估執行
參考答案:B
答案解析:m為增強的行錨點模式,\\n的前后也會被認為結束和開始
6.關於Laravel中間件錯誤的是?
A、運行Artisan 命令 make:middleware 創建新的中間件
B、可定義前置 & 后置中間件
C、中間件是代理模式
D、中間件是中介模式
參考答案:C
答案解析:運行Artisan 命令 make:middleware 創建新的中間件 可定義前置 & 后置中間件
7.要激活GD庫,必須啟用配置文件中的( )命令
A、php_gd2.dll
B、PHP.dll
C、PHP.ini
D、php_mbstring.dll
8.關於在PHP中的socket,說法錯誤的是
A、可使用fsocketopen函數建立socket連接
B、工作在第七層,可基於TCP和UDP協議
C、在PHP中默認超時時間是30秒
D、工作在第四層,可基於TCP和UDP協議
參考答案:B
答案解析:工作在第四層,可基於TCP和UDP協議 在PHP中默認超時時間是30秒
9.JSON格式數據,錯誤的是?
A、JSON一種輕量級的數據交換格式
B、JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)
C、這些特性使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(網絡傳輸速率)。
D、值是無序列表
參考答案:D
答案解析:值是有序列表
10.關於PHP數組排序原理,錯誤的是?
A、申請n個額外空間
B、遍歷雙鏈表
C、排序后單鏈表中節點的位置發生變化,因而調整指定指向
D、設置HashTable的pListTail
參考答案:C
答案解析:1.申請n個額外空間 2.遍歷雙鏈表 3.調用排序函數zend\_qsort(內部是快速排序算法)對數組排序 4.排序后,雙鏈表中節點的位置發生變化,因而調整指定指向 5.遍歷數組,分別設置每一個節點的pListLast和pListNext 6.設置HashTable的pListTail
很多人在剛接觸這個行業的時候或者是在遇到瓶頸期的時候,總會遇到一些問題,比如學了一段時間感覺沒有方向感,不知道該從那里入手去學習,對此我整理了一些資料,需要的可以免費分享給大家(11年架構師帶你解讀年薪50萬面試通關秘籍。)
如果喜歡我的文章,想與一群資深開發者一起交流學習的話,獲取更多相關大廠面試咨詢和指導,歡迎加入我的學習交流群點擊此處PHP高級交流
11.關於Redis的應用場景,以下說法不正確的是?
A、交集,並集,差集
B、計數器、隊列
C、排行榜
D、新聞發布系統
12.關於漏洞掃描的描述,以下哪項是錯誤的?
A、漏洞掃描是一種基於網絡遠程檢測目標網絡或主機安全性脆弱性的技術,可以被用來進行模擬攻擊實驗和安全審計.
B、漏洞掃描用來探測目標主機系統是否存在漏洞,一般是對目標主機進行特定漏洞的掃描.
C、漏洞掃描就是一種被動的防范措施,可以有效避免黑客攻擊行為.
D、可以根據Ping掃描和端口掃描的結果進行漏洞掃描.
參考答案:C
答案解析:漏洞掃描是一種主動的防范措施,能有效避免黑客攻擊行為,做到防患於未然安全掃描就是一種主動的防范措施
13.PHP程序使用utf-8編碼, 以下程序輸出結果是什么?
A、9
B、13(gbk)
C、18
D、17(utf8)
參考答案:D
答案解析:strlen() 函數返回字符串的長度。utf-8編碼一個漢字是3個字符,5個英文字符+3字符\*4個中文=17個字符
14.棧和隊列具有相同的()
A、抽象數據類型
B、邏輯結構
C、存儲結構
D、運算
參考答案:B
答案解析:線性表、棧、隊列的邏輯結構是一樣的,都屬於線性結構。只是他們對數據的運算不同,從而表現出不同的特點
15.為什么InnoDB表要建議用自增列做主鍵?
A、使用自增列(INT/BIGINT類型)做主鍵,這時候寫入順序是自增的,和B+數葉子節點分裂順序一致
B、無
C、該表不指定自增列做主鍵,同時也沒有可以被選為主鍵的唯一索引(上面的條件),這時候InnoDB會選擇內置的ROWID作為主鍵,寫入順序和ROWID增長順序一致
D、使用自增列(INT/BIGINT類型)做主鍵,這時候寫入順序是自增的,和B+數葉子節點分裂順序一致; 該表不指定自增列做主鍵,同時也沒有可以被選為主鍵的唯一索引(上面的條件),這時候InnoDB會選擇內置的ROWID作為主鍵,寫入順序和ROWID增長順序一致; 除此以外,如果一個InnoDB表又沒有顯示主鍵,又有可以被選擇為主鍵的唯一索引,但該唯一索引可能不是遞增關系時(例如字符串、UUID、多字段聯合唯一索引的情況),該表的存取效率就會比較差
16.對以下Javascript代碼說法正確的是?
A、值為 0
B、obj2引用了obj1的方法
C、執行call時,函數里的this指向obj1
D、最后obj1的value值為6
17.以下關於引用說法錯誤的是?
A、引用不是C的指針
B、引用不允許用兩個變量來指向同一個內容
C、用引用可以傳遞變量
D、可以將一個變量通過引用傳遞給函數,這樣該函數就可以修改其參數的值。
參考答案:B
答案解析:引用是允許用兩個變量來指向同一個內容的
18.GoAccess雖然很強大但是他不能做以下哪項工作?
A、生成統計數據帶寬統計
B、可生成HTML報告
C、可發送HTTP請求
D、各HTTP狀態碼統計
19.關於線程的,說法錯誤的是?
A、線程是進程的一個實體,是CPU調度和分派的基本單位
B、它是比進程更小的能獨立運行的基本單位
C、線程和進程一樣擁有系統資源
D、線程自己基本上不擁有系統資源
20.關於php文件指針的說法錯誤的是?
A、feeek() 移動文件指針到指定位置
B、fcreate() 用於創建一個文件
C、rewind()將文件指針設為文件流的開頭
D、feof() 測試文件指針是否到達文件結束的位置
21.下邊是php的函數而不是語言結構的是?
A、eval()
B、require_once()
C、list()
D、empty()
22.該正則可以匹配下列哪個字符串? /^sjm/
A、absjm
B、phpsjm
C、sjmphp
D、phpsimd
23.下列哪個選項可以查看php運行模式?
A、php -r phpinfo();|find / grep"Server API"
B、php -r "echo php_sapi_name();"
C、phpinfo();
D、以上都是
24.以下inode不包含的是?
A、文件的讀寫權限
B、文件的位置
C、當前目錄下的文件數
D、文件的時間戳
25.以下代碼輸出的結果是?
A、1
B、2
C、3
D、4
26.把CSS樣式表與HTML網頁關聯,不正確的方法是( )。
A、在HTML文檔的<head>標簽內定義CSS樣式
B、用@import引入樣式表文件
C、在HTML文檔的<!-- -->標簽內定義CSS樣式
D、用<link>標簽鏈接網上可訪問的CSS樣式表文件
27.一下哪個不是PHP的運行模式?
A、CGI
B、FastCGI
C、apache2handler
D、apache
二、多選題(共3題,每題5分)
1.分庫分表之后,id 主鍵如何處理?
A、單庫生成自增 id
B、設置數據庫 sequence 或者表自增字段步長
C、UUID
D、snowflake 算法
