php面試專題---5、流程控制考點


php面試專題---5、流程控制考點

一、總結

一句話總結:

看代碼不要先看函數里面的內容,要用的時候再去看;注意靜態,注意變量作用域,php中的內置函數需要去歸類總結,就是太容易忘記了

 

1、寫出如下程序的輸出結果,解釋為什么?

|||-begin

<?php
$count = 5;
function get_count()
{
    static $count;  
    return $count++;
}

echo $count;-->5
++$count;-->6

echo get_count();-->null
echo get_count();-->1

|||-end

結果:5 1
null不會被輸出
null++之后是1
函數內部需要手段才能使用外部變量

 

2、變量的作用域和靜態變量?

php中函數內使用全局變量需有手段:變量的作用域也稱變量的范圍,變量的范圍即它定義的上下文背景(也是它的生效范圍)。大部分的PHP變量只有一個單獨的范圍。這個單獨的范圍跨度同樣包含了include和require引入的文件。
global關鍵字:在函數內部寫global $outer;即可在函數內部使用

 

3、php static關鍵字注意點?

1.僅初始化一次;2.初始化時需要賦值
3.值保留:每次執行函數該值會保留
4.局部:static修飾的變量是局部的,僅在函數內部有效
5.可以用於遞歸調用次數:可以記錄函數的調用次數,從而可以在某些條件下終止遞歸

 

4、解釋下列程序的 結果?

|||-begin

function mgFunc(){
    Static $a=1; 
    echo $a++;
}
myFunc();→1
myFunc();→2
myFunc();→3

|||-end

初始化只有一次,每次執行函數該值會保留
可用來做遞歸次數判斷

 

5、函數的參數及參數的引用傳遞 是怎樣?

默認傳值:默認情況下,函數參數通過值傳遞
& $a:如果希望允許函數修改它的值,必須通過引用傳遞參數:比如

 

6、php函數的返回值的 注意點?

return返回:值通過使用可選的返回語句(return)返回
任意類型:可以返回包括數組和對象的任意類型
終止運行:返回語句會中止函數執行,將控制權交回函數調用處
數組返回多個值:返回多個值可以把值放在一個數組:省略return,返回值為NULL,不可有多個返回值

 

7、函數的引用返回實例?

|||-begin

function &mgFunc(){ //注意這里的&符號
    static $b=10; 
    return $b;
}

$a=myFunc();-->10
$a=&myFunc(); //注意這里的&符號
$a=100; 
echo myFunc();-->100

|||-end

注意這里把函數賦值給了一個變量
從函數返回一個引用,必須在函數聲明和指派返回值給一個變量時都使用引用運算符&

 

8、外部文件的導入 注意事項?

包含並運行:include/require語句包含並運行指定文件;
找路徑:如果給出路徑名按照路徑來找,否則從include_path中查找;如果include_path中也沒有,則從調用腳本文件所在的目錄和當前工作目錄下尋找
繼承變量范圍:當一個文件被包含時,其中所包含的代碼繼承了include所在行的變量范圍

 

9、php文件引入中include和require的區別?

警告和致命錯誤:加載過程中未找到文件則include結構會發出一條警告;這一點和require不同,后者會發出一個致命錯誤
E_COMPILE_ERROR:require 在出錯時產生E_COMPILE_ERROR級別的錯誤。換句話說將導致腳本中止
E_WARNING:而 include只產生警告(E_WARNING),腳本會繼續運行。
檢查是否被包含過:require(include)/require_one(include_once)唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含。

 

10、php系統內置函數注意點?

IP處理函數:ip2long()、long2ip()
序列化及反序列化函數:serialize()、unserialize()
時間函數
date()、strtotime()、mktime()、time()、microtime()、date_default_timezone_set()


IP處理函數
ip2long()、long2ip()

打印處理
print()、printf()、print_r()、echosprintf()、var_dump()、var_export()


序列化及反序列化函數
serialize()、unserialize()


字符串處理函數
implode()、explode()、join()、strrev()、trim()、
ltrim()、rtrim()、strstr()、number_format()...


數組處理函數

 

 

 

 

 

二、內容在總結中

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM