php基礎,面試整理

2021-10-05 20:49:06 字數 3973 閱讀 3708

1)php引用變數的概念和定義方式

概念:在php中引用用不同的變數名稱訪問同乙個變數內容

定義方式:使用&

延伸:php的cow機制,copy on write 當將a變數賦值給b變數的時候,並不會給b變數開闢記憶體空間,,只有當b變數進行修改之後才會給b變數開闢記憶體空間

使用xdebug_debug_zval('a') 可以列印出變數a在記憶體中的儲存樹結構,refcount表示變數被使用的次數,is_ref表示是否是引用

2)php字串的三種定義方式及各自的區別

三種定義方式:1單引號,2雙引號,3heredoc,nowdoc

區別,單引號不能解析變數,不能解析轉義字元,除了單引號本身和反斜線,,單引號的效率比雙引號的效率要高,可以用點鏈結字串與字串,以及字串與變數,可讀性也比較高,推薦使用。雙引號可以解析變數和轉義字元,變數可以用{}和其他字元隔開,效率較單引號低,heredoc類似雙引號,nowdoc類似單引號,兩者可以用來處理大文字定義方式

//heredoc 

$str = >>>eot

my name is "$name". i am printing some $foo->foo.

now, i am printing some .

this should print a capital 'a': \x41

eot;

//nowdoc

$str = >>>'eot'

i am printing some

this should print a capital

eot;

延伸:主要考察資料型別

1)浮點型別不能運用到比較運算之中

2)轉換成bool時,0,0.0,'0',false,array(),null都表示false

3)陣列型別中,超全域性陣列有,$_get,$_post,$cookie,$_request,$_session,$_server,$_files,$_env共八個

4)null有三種情況,賦值為null,未定義的變數,unset銷毀的變數

5)常量的定義,const,define,,const更快是語言結構,define是函式,const可以用於類常量的定義,而define不可以,,常量一經定義不能被修改不能被刪除

6)預定義常量 :__file__,__line__,__dir__,__function__,__class__,__trait__,__method__,__namespace__共8個

3)運算子的各種考點

1.運算子的優先順序問題

遞增,遞減 > ! >算數運算子 > 大小比較運算子 > (不)相等比較  > 引用 > 位運算子(^)  >位運算子(|) > 邏輯與 >邏輯或 >三目運算子 > 賦值運算子 > and > xor > or

2)遞增遞減運算子 ++ --

遞增遞減運算子不影響bool值

null遞增等於1,null遞減沒有效果

遞增遞減在前就先運算後返回,,返回則先返回後運算

4)php遍歷陣列的三種方式

1)使用for迴圈  只能遍歷索引陣列

2)使用foreach迴圈 可以遍歷索引和關聯陣列 ,遍歷是會reset陣列指標

3)使用 while list() 和each()組合迴圈,可以遍歷索引和關聯陣列,需要注意的是不會對陣列進行reset()操作

5)php的分支結構

1)if ...elseif ..... else

2) switch .... case

區別:和if不同的是switch後面的空置表示式的資料型別只能是,整形浮點型和字串,,if可以任意資料型別,,在switch語句中continue的作用和break是一樣的,,想要跳出switch外的迴圈可以使用continue2

switch....case會生成跳轉表,,直接跳轉到case,,,所以在比較複雜或者和多次迴圈的條件分支中用switch..case效能會比if ..else高

6)php的變數的作用域

1)大部分的變數只有乙個單獨的範圍,這個單獨的範圍跨度同樣包含了include和require引入的檔案 global關鍵字,$globals及其他超全域性陣列

2)static靜態變數,僅初始化一次,初始化時需要賦值,否則為null,每次執行函式該值會保留,static修飾的變數是區域性的僅在函式內有效,一般可以用來記錄函式的呼叫次數,從而在某些條件下終止遞迴。

3)關於函式的返回值,可以返回包括陣列和物件的任意值,返回語句會終止函式執行,將控制權交會函式呼叫處,省略return,返回值為null,,不可有多個返回值

4)函式的引用返回,,從函式返回乙個引用,必須在函式宣告和指派返回值給乙個變數是都使用引用運算子&

5)include/require語句包含執行指定檔案,,如果給出路徑名按照路徑來找,否則從include_path中查詢,如果include_path中也沒有則從呼叫指令碼檔案所在目錄和當前工作目錄中尋找,,當乙個檔案被包含時其中所包含的**繼承了include所在行的變數範圍,,,當檔案未找到時候,include結構會報出乙個警告,**繼續執行,,require會報致命錯誤**終止

6)正規表示式相關

正規表示式的作用:分割,查詢,匹配,替換字串

分隔符:正斜線(/),hash符號(#),以及取反符號(~)

通用原子:\d、\d 、 \w 、\w 、\s、\s

元字元:. * ? ^ + () [^] | [-]

模式修正符: i m e s u x a d u

一般主要考點是考,,正則的後向引用和貪婪模式

php中的幾個正則相關的函式preg_match(),preg_match_all(),preg_replace(),preg_split()

7)檔案相關的

檔案相關的一般記住php的一些檔案相關的函式

1)檔案讀寫相關:fopen(),以指定的模式開啟檔案,,模式有 r/r+ w/w+ a/a+ x/x+ b,y

讀取函式,fread(),fgets(),fgetc()  關閉fclose()

不需要fopen的開啟函式 file_get_contents(),file_put_contents()  其他的有file(),readfile()

訪問遠端檔案,,開啟allow_url_fopen,http協議連線只能使用唯讀,ftp協議可以使用唯讀或者只寫

2)目錄操作函式

名稱相關:basename(),dirname(),pathinfo()

目錄讀取:opendir(),readdir(),closedir(),rewinddir()

目錄刪除:rmdir()

目錄建立:mkdir()

3) 其他常用函式

檔案大小:filesize()

目錄大小:disk_free_space(),disk_total_space()

檔案拷貝:copy()

刪除檔案:unlink()

檔案型別:filetype()

重新命名檔案或者目錄:rename()

檔案擷取:ftruncate()

檔案屬性:file_exists(),is_readable(),is_writable(),is_executable(),filectime(),fileatime(),filemtime()

檔案鎖:flock()

檔案指標:ftell(),fseek(),rewind()

php面試整理20190102

1.arr age 1,name a age 3,name c age 2,name b 將陣列 arr按照age的值 從小到大排列。考察多維陣列按照其中乙個字段值排序,使用array multisort 函式 array mutisort 函式的語法和用法,w3school.com.cn上解釋如下...

php面試相關整理

1 http keep alive的作用 作用 keep alive 使客戶端到伺服器端的連線持續有效,當出現對伺服器的後繼請求時,keep alive功能避免了建立或者重新建立連線。web伺服器,基本上都支援http keep alive。接有一定的好處,但它同樣影響了效能,因為在處理暫停期間,本...

PHP面試題整理

關於empty和isset的介紹,可以看這篇部落格 bool empty mixed var 判斷乙個變數是否被認為是空的。當乙個變數並不存在,或者它的值等同於false,那麼它會被認為不存在。如果變數不存在的話,empty 並不會產生警告。var dump empty 0 bool true va...