刷php面試題

2021-09-12 13:00:01 字數 4914 閱讀 6793

在mysql中乙個資料庫中可以同時存在多種引擎,儲存引擎是針對表的。

事物

myisam:不支援事物

innode:支援事物

儲存空間

myisam:的表儲存成3個檔案。檔案的名字與表名相同,frm檔案儲存表的結構,myd檔案儲存資料,myi檔案儲存索引。

innode:所有的表都儲存在同乙個資料檔案中。

表鎖差異

myisam:只支援表級鎖,使用者在操作myisam表時,select,update,delete,insert語句都會給表自動加鎖

innodb:支援事務和行級鎖,是innodb的最大特色。行鎖大幅度提高了多使用者併發操作的新能。但是innodb的行鎖,

只是在where的主鍵是有效的

外來鍵

myisam:不支援

innodb:支援

myisam和innodb兩者的應用場景

myisam管理非事務表。它提供高速儲存和檢索。如果應用中需要執行大量的select查詢,那麼

myisam是更好的選擇。

innodb用於事務處理應用程式,具有眾多特性,包括事務支援。如果應用中需要執行大量的insert或update、

操作,則應該使用innodb,這樣可以提高多使用者併發操作的效能。

array_column() 返回輸入陣列中某個單一列的值

array_multisort() 函式返回排序陣列。您可以輸入乙個或多個陣列。函式先對第乙個陣列進行排序,接著是其他陣列,如果兩個或多個值相同,它將對下乙個陣列進行排序。

public

function

arrsort()

1. 常用字段建立索引。

2. 盡量避免where語句中對null進行判斷,否則引擎會放棄索引進行全表掃瞄。

3. 應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃瞄。

4. .in 和 not in 也要慎用,否則會導致全表掃瞄,beteen ,and替代。

5. 盡量避免在 where 子句中使用 or 來連線條件,否則將導致引擎放棄使用索引而進行全表掃瞄,union all 或 union 來替代。

6. 盡量避免like %abc%,會導致全表掃瞄

7. 不要在 where 子句中的「=」左邊進行函式、算術運算或其他表示式運算,否則系統將可能無法正確使用索引。

8. 避免使用的磁碟臨時表,讓他在記憶體中操作。

索引使用是根據查詢順序來判斷的,先使用a的復合索引,後面使用b的普通索引。

索引在sql優化上,盡量排好條件的優先順序,去設計where。

8 		0		0

5 0 3

5 3 0

2 3 3

2 5 1

7 0 1

7 1 0

4 1 3

4 4 0

function

student

($arr,$m

,$count=0

)else

echo

$arr

[$count].

'student.';

array_splice

($arr

,$count,1

);student

($arr,$m

,$count);

}}$student_arr=[

1,2,

3,4,

5,6,

7,8,

9,10]

;$m=3

;student

($student_arr,$m

);

function

yuesefu($n

,$m)return$r+

1;}echo

yuesefu(10

,3);

function

get_rand

($arr

)else

}return

$result;}

$prize_arr

=array

('0'

=>

array

('id'

=>1,

'prize'

=>

'平板電腦'

,'v'

=>

0.1)

,'1'

=>

array

('id'

=>2,

'prize'

=>

'數位相機'

,'v'

=>5)

,'2'

=>

array

('id'

=>3,

'prize'

=>

'音箱裝置'

,'v'

=>10)

,'3'

=>

array

('id'

=>4,

'prize'

=>

'4g優盤'

,'v'

=>12)

,'4'

=>

array

('id'

=>5,

'prize'

=>

'10q幣'

,'v'

=>22)

,'5'

=>

array

('id'

=>6,

'prize'

=>

'下次沒準就能中哦'

,'v'

=>50)

,);$new_arr=[

];foreach

($prize_arr

as$key

=>

$val

)get_rand

($new_arr

);

$day1

='2019-3-1 8:00'

;$day2

='2019-3-28 5:28:22'

;$time=(

strtotime

($day2)-

strtotime

($day1))

%(24*

60*60)

;$rem_hour

=$time

%3600

;$rem_minute

=$rem_hour%60

;$day

=floor((

strtotime

($day2)-

strtotime

($day1))

/(24*

60*60)

);$hour

=floor

($time

/3600);

$minute

=floor

($rem_hour/60

);$second

=$rem_minute%60

;echo

$day

.'天'

.$hour

.':'

.$minute

.':'

.$second

;

1xx:臨時響應

2xx:表示成功請求狀態碼

3xx:重定向,表示要完成請求,需要進一步操作。 通常,這些狀態**用來重定向。

4xx:請求錯誤,這些狀態**表示請求可能出錯,妨礙了伺服器的處理。

5xx:伺服器錯誤,這些狀態**表示伺服器在嘗試處理請求時發生內部錯誤。 這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。

__construct() 建構函式:具有建構函式的類會在每次建立新物件時先呼叫此方法。

__destruct() 析構函式:析構函式會在到某個物件的所有引用都被刪除或者當物件被顯式銷毀時執行。

__call() :在物件中呼叫乙個不可訪問方法時。

__callstatic() :在靜態上下文中呼叫乙個不可訪問方法時。

—set() :在給不可訪問屬性賦值時。

__get() :讀取不可訪問屬性的值時。

__isset() :當對不可訪問屬性呼叫 isset() 或 empty() 時。

__unset() :當對不可訪問屬性呼叫 unset() 時。

__tostring() :用於乙個類被當成字串時應怎樣回應。例如 echo $obj; 應該顯示些什麼。

__invoke() :當嘗試以呼叫函式的方式呼叫乙個物件時。

__clone() :物件複製可以通過 clone 關鍵字來完成(如果可能,這將呼叫物件的 __clone() 方法)。物件中的 __clone() 方法不能被直接呼叫。

function

create_dir

($path

,$mode

=0777

)else

else

}}

function

writetxt

($path

)else

}

面試題 PHP面試題

建議 比如是系統配置,缺少了無法執行,自然使用 require 如果某一段程式少了,只是少了統計 訪問的,不是必不可少的。可以使用 include 而加不加 once 就是效率上的區別,雖然系統會幫你考慮只包含一次,但系統的判斷會降低效率,因此,更應該在開發之初,把目錄結構調整高好,盡量不使用 on...

php面試題四

php面試題二 8.談談事務處理 答案是 事物只是一組sql語句,通常因為它們是彼此相互依賴的。所有要在全有或者 全無的模式下執行,只有當所有的語句都執行成功了,乙個事物才算成功了,任何乙個語句中的失敗應該都會導致系統 回滾 到它先前的狀態,以避免資料連線 崩潰問題。9.apache mysql p...

幾個PHP面試題

一 1 有如下html 1 用js取得 方法取得該物件 2 用 屬性取得屬性title的屬性值 3 用 方法取得屬性sina title的屬性值 1 document.getelementbyid img1 2 document.getelementbyid img1 getattribute ti...