珍藏BAT php編程面試100題匯總(四)

接著上篇文章繼續,歡迎大家關注學習(PHP之父鎮樓)

珍藏BAT php編程面試100題彙總(四)

61.PHP工作原理

一個網站運行時客戶端有無數個,服務器通常只有一個(負載均衡)開發環境的安裝2,PHP5.4,MYSQL5.3-------開源,可以跨平臺

配置文件:conf(Apache), php.ini my.ini

PHP文檔組成:HTML,css,js,jquery,PHP

PHP語法風格:xml風格,短風格,ASP風格(已過時),腳本風格

注意:位置任意,同一頁面可以出現多次,不能嵌套,裡面只能出現php代碼,需要轉字符串輸出

運行在服務器端

註釋:單行註釋,多行註釋

62數據類型:

標量類型:integer,Float,String,boolean

複合類型:Array,Object

特殊類型:Resource,Null

偽類型:mixed,number,callback(回調函數)

63.PHP中被認為是false的值:

0, 0.0, null, 空數組, 空字符串, false

64.求兩個日期的差數,例如2017-2-27 ~ 2018-05-6 的日期差數

珍藏BAT php編程面試100題彙總(四)

65什麼是MVC?

回答:MVC由Model(模型), View(視圖)和Controller(控制器)組成,PHP MVC可以更高效地管理好3個不同層的PHP代碼。

Model:數據信息存取層。

View:view層負責將應用的數據以特定的方式展現在界面上。

Controller:通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。

66.PHP中獲取圖像尺寸大小的方法是什麼?

回答:getimagesize () 獲取圖片的尺寸

Imagesx () 獲取圖片的寬度

Imagesy () 獲取圖片的高度

67.如何在PHP中定義常量?

回答:PHP中使用Define () 來定義常量。

define (“Newconstant”, 30);

68.如何不使用submit按鈕來提交表單?

如果我們不想用submit按鈕來提交表單,我們也可以用超鏈接來提交,我們可以這樣寫代碼:

珍藏BAT php編程面試100題彙總(四)

69.簡述論壇中無限分類的實現原理。

答:無限極分類,那麼應該是考察遞歸函數吧!

第一步:建立測試數據庫:

珍藏BAT php編程面試100題彙總(四)

第二步:插入測試數據:

珍藏BAT php編程面試100題彙總(四)

第三步:遞歸輸出分類:

70.試述isset()和empty()的區別

isset() 測試變量是否存在 empty() 測試變量是否為空

71.請用盡可能少的語句實現對輸入Email地址進行驗證的功能

eregi('^[_a-z0-9]+(/.[_a-z0-9-]+)*@[a-z0-9]+(/.[a-z0-9-]+)*$',$emailaddress)

72.使用PHP描述冒泡排序和快速排序算法,對象可以是一個數組

珍藏BAT php編程面試100題彙總(四)

73、使用PHP描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對象可以是一個有序數組

珍藏BAT php編程面試100題彙總(四)

74.寫一個二維數組排序算法函數,能夠具有通用性,可以調用php內置函數

珍藏BAT php編程面試100題彙總(四)

75.utf-8轉換成gbk的函數是?

iconv("gbk",""UTF-8,"我們"); mb_convert_encoding($str, "GBK", "UTF-8")

76.Php中分割字符串成數組的函數和連接數組成字符串的函分別有哪些?

explode() split() ;implode() join()

77.說幾個你知道的設計模式?

單例模式: 保證一個類僅有一個實例,並提供一個訪問他的全局訪問點例如框架中的數據庫連接

簡單工廠模式: 它具有創建對象的某些方法,可以使用工廠類創建對象,而不直接使用 new。例如初始化數據庫的時候會用到,比如MySQL,MSSQL

策略模式: 針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,例如進入個人主頁時,根據瀏覽者的不同,給予不同的顯示與操作

註冊模式: 提供了在程序中有條理的存放並管理一組全局對象 (object),例如ZF框架中的Zend_Registry::set

適配器模式: 將不同接口適配成統一的API接口,例如數據操作有mysql、mysqli、pdo等,可利用適配器模式統一接口

觀察者模式: 一個對象通過添加一個方法使本身變得可觀察。當可觀察的對象更改時,它會將消息發送到已註冊的觀察者。例如實現實現消息推送

裝飾器模式: 不修改原類代碼和繼承的情況下動態擴展類的功能,例如框架的每個Controller文件會提供before和after方法

迭代器模式: 提供一個方法順序訪問一個聚合對象中各個元素,在PHP中將繼承 Iterator 類

原型模式: 實現了一個原型接口,該接口用於創建當前對象的克隆。當直接創建對象的代價比較大時,則採用這種模式。例如,一個對象需要在一個高代價的數據庫操作之後被創建。

78.echo,print(),print_r(),printf(),sprintf(),var_dump()有什麼區別?

echo :是語句不是函數,沒有返回值,可輸出多個變量值,不需要圓括號。不能輸出數組和對象,只能打印簡單類型(如int,string)

print :是語句不是函數,有返回值 1 ,只能輸出一個變量,不需要圓括號。不能輸出數組和對象,只能打印簡單類型(如int,string)。

print_r

:是函數,可以打印複合類型,例如:stirng、int、float、array、object等,輸出array時會用結構表示,而且可以通過print_r($str,true)來使print_r不輸出而返回print_r處理後的值

printf :是函數,把文字格式化以後輸出(參看C語言)

sprintf :是函數,跟printf相似,但不打印,而是返回格式化後的文字,其他的與printf一樣。

var_dump :函數,輸出變量的內容、類型或字符串的內容、類型、長度。常用來調試。

79.echo count(“abc”); 輸出什麼?

答案:1

80.寫個函數用來對二維數組排序。

答案:array_multisort() 。

珍藏BAT php編程面試100題彙總(四)

更多面試題持續更新中~


分享到:


相關文章: