本文是根據慕課網Jason老師的課程進行的PHP面試知識點總結和昇華,如有侵權請聯繫我進行刪除,email:[email protected]
在面試中,考官往往喜歡基礎紮實的面試者,而運算符相關的考點,往往是大家容易忽視的一個點,今天冷月就來幫各位小夥伴們梳理一下,在面試中運算符相關的注意點。
回顧真題
abc()和@abc()之間的區別。
答案:PHP 支持一個錯誤控制運算符:@。當將其放置在一個 PHP 表達式之前,該表達式可能產生的任何錯誤信息都被忽略掉。使用方法如下:
<?php
/**
* Created by 冷月小白.
* 微信公衆號: 學長冷月
*/
function abc()
{
echo 1 / 0;
}
abc(); //輸出 Warning: Division by zero
function abc()
{
echo 1 / 0;
}
@abc(); //輸出 INF
?>
考點分析
本考點主要是考察面試者對於php的運算符中的錯誤控制符@的認識,以及對於其衍生出來相關運算符的考點,各位小夥伴只需要把本博文的知識充分理解,就能得心應手的解決這類問題。下面冷月爲大家展開講解:
運算符的優先級
在php的運算符種類、數量都很多,冷月整理出來了面試中常考的幾個爲大家詳細講解:
遞增/遞減 > 算術運算符 > 數值大小比較 > 邏輯與 > 邏輯或 > 三目運算符 > 賦值運算符
- 遞增/遞減
i++ 或 ++i
- 算術運算符
+ - * / %
- 數值大小比較
> >= < <= ==
- 邏輯與
&&
- 邏輯或
||
- 三目運算符
:?
- 賦值運算符
a = 10
冷月建議在平時的編程過程中,各位小夥伴應該養成用()將表達式括住的習慣,這樣可以避免犯錯誤。但是,在面試中,往往就是沒有()的面試題,大家也要多注意。
比較運算符
理解==和===
的區別:
==
:數值相等就返回true,
===
:數值相等和數據類型相等才返回true。
其中返回FALSE的7種情況也是常考點!
不清楚數據類型和FALSE的7種情況的小夥伴,可以學習一下冷月在另一篇博文中介紹的知識-《php面試筆記(2)-php基礎知識-常量和數據類型》或者關注冷月的微信公衆號:學長冷月。回覆:php面試。冷月將整理好的資料發給您。
遞增/遞減運算符
其中,要注意的是遞增/遞減運算符對布爾值的影響。
NULL是最重要的一個點。
NULL-- : 無效果
NULL++:輸出1
邏輯運算符及短路作用
x && y
的短路作用爲:x爲FALSE就直接返回FALSE,不執行y
x || y
的短路作用爲:x爲TRUE就直接返回TRUE,不執行y
一網打盡
<?php
/**
* Created by 冷月小白.
* 微信公衆號: 學長冷月
*/
$a = 0;
$b = 0;
if ($a = 3 > 0 || $b = 3 > 0) {
$a++;
$b++;
echo $a; //1
echo $b; //1
}
?>
答案: $a 和 $b 都返回1。
我們來分析這段代碼($a = 3 > 0 || $b = 3 > 0)
,根據上面對優先級的介紹,我們已經知道了各類運算符的執行流程。首先是比較運算符3>0
返回true,而 根據邏輯或的短路作用,前面返回true則直接返回true,不執行後面的代碼。 所以if的括號返回true,轉而執行括號體的內容。
相關閱讀
php面試筆記(1)-php基礎知識-變量和引用變量
php面試筆記(2)-php基礎知識-常量和數據類型
php面試筆記(3)-php基礎知識-運算符
php面試筆記(4)-php基礎知識-流程控制
php面試筆記(5)-php基礎知識-自定義函數及內部函數考點
php面試筆記(6)-php基礎知識-正則表達式考點
php面試筆記(7)-php基礎知識-文件及目錄處理考點
php面試筆記(9)-php基礎知識-面向對象考點
好了,今天和大家的分享就到這裏了,大家一定要勤加練習,早日收穫自己的offer!
歡迎關注我的公衆號:學長冷月,獲得獨家整理的學習資源和日常乾貨推送。
如果您對我的專題內容感興趣,也可以關注我的博客:guoyu7.com