php中級面試題彙總

2021-10-01 10:01:48 字數 2449 閱讀 8250

1、mysql 索引設計原則:

(1)對於經常查詢的字段,建議建立索引。

(2)索引不是越多越好,乙個表如果有大量索引,不僅占用磁碟空間,而且會影響insert,delete,update等語句的效能。

(3)避免對經常更新的表進行過多的索引,因為當表中資料更改的同時,索引也會進行調整和更新,十分消耗系統資源。

(4)資料量小的表建議不要建立索引,資料量小時索引不僅起不到明顯的優化效果,對於索引結構的維護反而消耗系統資源。

(5)不要在區分度低的字段建立索引。比如性別字段,只有 「男」 和 「女」 ,建索引完全起不到優化效果。

(6)當唯一性是某欄位本身的特徵時,指定唯一索引能提高查詢速度。

(7)在頻繁進行跑排列分組(即進行 group by 或 order by操作)的列上建立索引,如果待排序有多個,可以在這些列上建立組合索引。

2、一次完整的http請求所經歷的步驟

2.根據這個ip,找到對應的伺服器,發起tcp的三次握手

3.建立tcp連線後發起http請求

4.伺服器響應http請求,瀏覽器得到html**

5.瀏覽器解析html**,並請求html**中的資源(如js、css等)(先得到html**,才能去找這些資源)

6.瀏覽器對頁面進行渲染呈現給使用者

3、資料結構

資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成 。

常用的資料結構有:陣列,棧,鍊錶,佇列,樹,圖,堆,雜湊表(雜湊表)

4、服務註冊與發現

參考:5、http協議鐘狀態碼含義

201 已建立 

301 永久移動 

400  錯誤請求 

500 伺服器內部錯誤

202 已接受

302 臨時移動 

401 未授權 

501 不支援的請求

203  非授權資訊

303 檢視其它位址

403 禁止 

502 錯誤閘道器

204 無內容

304未修改

404未找到     

503伺服器不可用

205 重置類容   

305 使用**   

405 方法禁用

504 閘道器超時

206 部分處理

306臨時重定向

406  不接受 

505 http不支援

6、php排序演算法

參考:7、二分法查詢

方法一:

// 遞迴呼叫實現二分法查詢

//$search 函式 $array為陣列,$k為要找的值,$low為查詢範圍的最小鍵值,$high為查詢範圍的最大鍵值

//intval返回整數值*/

function search($array,$k,$low=0,$high=0)

if($low <= $high)elseif($k < $array[$mid])else

}return "沒有要查詢的值";

}$array = array(3,4,5,7,8,9,10);

echo search($array,4);

方法二:

/*

//while迴圈實現二分法查詢

*/$arr = array(2,4,5,6,7,8,9,10);

$low = 0; //要查詢範圍的最小鍵值

$search = 6;

//計算出陣列的長度

$high = count($arr)-1;

while($low <= $high)elseif($arr[$mid] > $search)else

}

8、php鐘self合static的區別

關鍵字「self」的工作原理是:它會呼叫當前類(current class)的方法。因為model方法只在class car中定義的,所以對它來說當前類就是class car。model中的self::getmodel(),呼叫的自然也就是class car中的getmodel方法。

在php5.3中,加入了乙個新的特性,叫做延遲靜態繫結。它可以幫我們實現多型,解決上面的問題。簡單來說,延遲靜態繫結意味著,當我們用static關鍵字呼叫乙個繼承方法時,它將在執行時繫結呼叫類(calling class)。在上面的例子中,如果我們使用延遲靜態繫結(static),意味當我們呼叫「mercedes::model();」時,class mercedes中的getmodel方法將會被呼叫。因為mercedes是我們的呼叫類

參考:

PHP面試題彙總(二)

php對陣列按照鍵名排序 ksort 公升序 krsort 降序php對陣列按照鍵值排序 重置為索引陣列 sort 公升序 rsort 降序php對陣列按鍵值排序 仍為關聯陣列 asort 公升序 arsort 降序php獲取 中英文混合的 字串長度 strlen str 可以用於獲取普通字元的長度...

linux面試中級面試題

一 linux系統和 shell 1.寫乙個 sed命令,修改 tmp input.txt 檔案的內容,要求 1 刪除所有空行 2 一行中,如果包含 11111 則在 11111 前面插入 aaa 在 11111 後面插入 bbb 比如 將內容為 0000111112222 的一行改為 0000aa...

linux面試中級面試題

一 linux系統和 shell 1.寫乙個 sed命令,修改 tmp input.txt 檔案的內容,要求 1 刪除所有空行 2 一行中,如果包含 11111 則在 11111 前面插入 aaa 在 11111 後面插入 bbb 比如 將內容為 0000111112222 的一行改為 0000aa...