本文是根據慕課網Jason老師的課程進行的PHP面試知識點總結和昇華,若有侵權請聯繫我進行刪除,email:guoyugygy@163.comphp
在面試中,考官每每喜歡基礎紮實的面試者,而函數相關的考點,每每是你們容易忽視的一個點,今天冷月就來幫各位小夥伴們梳理一下,在面試中函數相關的注意點。面試
<?php /** * Created by 冷月小白. * 微信公衆號: 學長冷月 */ $count = 5; function get_count() { static $count; return $count++; } echo $count; //輸出5 ++$count; // 6 echo "<br />"; echo get_count(); //什麼也不輸出,執行完後靜態$count的值爲1 echo "<br />"; echo get_count(); //輸出1
解析:
在上面這段代碼中第一次執行get_count()時什麼也不輸出
由於$count++是先返回後++。而第二次執行get_count()時輸出1,理由同上
。不瞭解 $count++和++ $count的小夥伴們,能夠學習一下冷月在另外一篇博文中介紹的知識《php面試筆記(3)-php基礎知識-運算符》或者關注冷月的微信公衆號:學長冷月。回覆:php面試。冷月將整理好的資料發給您。數組
本題考查變量的做用域和靜態變量。靜態變量僅在函數做用域內有效,也就是說靜態變量只存活在棧中。但當程序執行離開此做用域時,其值並不會消失。也就是說下次再調用這個函數的時候,該變量的值會保留下來。
使用時只須要在變量前加上關鍵字static,該變量就成爲靜態變量了。微信
函數的參數及參數的引用傳遞
默認狀況下,函數參數經過值來傳遞。若是但願容許函數修改它的值,必須經過引用來傳遞參數。關於引用參數傳遞,請學習冷月的另外一篇博文《php面試筆記(1)-php基礎知識-變量和引用變量》。網絡
函數的返回值函數
函數的引用返回
從函數返回一個引用,必須在函數聲明和指派返回值給一個變量時,都使用引用運算符 &。學習
<?php /** * Created by 冷月小白. * 微信公衆號: 學長冷月 */ function &myFunc() { static $b = 10; return $b; } $a = myFunc(); // 10 $a = &myFunc(); // 將$a與$b互爲引用(指向的是一個內存空間),此時將$b = 10,賦值給$a $a = 100; // 修改 $a的值,函數中 $b的值也會發生改變 echo myFunc(); // 100 ?>
外部文件的導入ui
系統內置函數code
1. 時間日期函數orm
date():對當前日期或時間進行格式化。
strtotime():把人類可讀的字符串轉換爲 Unix 時間。
mktime():返回一個日期的 UNIX 時間戳。
time():返回當前時間戳(推薦)
microtime():返回當前 Unix 時間戳的微秒數
date_default_timezone_set():設置默認時區
2.IP處理函數
ip2long():IP網絡址協議地址轉換成整數
long2ip():整數轉換成IP網絡址協議地址
3. 序列化及反序列化函數
serialize():用於序列化對象或數組,並返回一個字符串。
unserialize():反序列化
** 4.字符串處理函數**
implode():把數組元素組合爲一個字符串
explode():把字符串打散爲數組
join():把數組元素組合爲一個字符串
strrev():反轉字符串
trim():移除字符串兩側的空白字符或其餘預約義字符。
ltrim():移除字符串左側的空白字符或其餘預約義字符
rtrim():移除字符串右側的空白字符或其餘預約義字符
strstr():搜索字符串在另外一字符串中是否存在,若是是,返回該字符串及剩餘部分,不然返回 FALSE
number_format():經過千位分組來格式化數字
咱們先來看一段代碼:
<?php /** * Created by 冷月小白. * 微信公衆號: 學長冷月 */ $var1 = 5; $var2 = 10; function foo(&$my_var) { global $var1; //使用全局變量 $var1 = 5 $var1 += 2; //7 $var2 = 4; //4 局部變量 $my_var += 3; //8 return $var2; //4 } $my_var = 5; echo foo($my_var); //4 echo $my_var; //8 echo $var1; //7 echo $var2; //10 $bar = 'foo'; //這裏使用可變函數foo $my_var = 10; echo $bar($my_var); //4 ?>
答案:
本題考查了全局變量和局部變量的知識點,咱們先不要看函數,等函數執行時再回過頭來看函數,這樣就能夠較好的解決這類問題。
好了,今天和你們的分享就到這裏了,你們必定要勤加練習,早日收穫本身的offer!
歡迎關注個人公衆號:學長冷月,得到獨家整理的學習資源和平常乾貨推送。
若是您對個人專題內容感興趣,也能夠關注個人博客:guoyu7.com