閱讀時長:10分鐘編程
技術預備:PHP基礎語法數組
經過上一篇的學習,相信童鞋們已經大概瞭解了PHP的變量和數組,這篇雖然叫進階語法,但其實也仍是基礎語法,只是爲了和上一篇作一個區別。(在編程界再怎麼高級的東西始終會在時間的車輪下變成基礎)
bash
本節主要講解PHP的運算符、函數和麪向對象。框架
依照上一節的特性,一些太簡單的如 $a=$b+$c;
這種基礎操做就跳過了,咱們主要來說講PHP的一些騷操做。編程語言
大部分現代編程語言的運算符在PHP都實現了,這裏主要講解一下弱類型語言特有的「==」和「===」運算符。函數
在強類型語言中通常只有「==」這種運算符,那麼爲何弱類型語言會須要「===」運算符呢?學習
這是由於在弱類型語言,如PHP中,當數字0和字符串「0」相比較的時候,PHP會自動的把字符串轉換爲數字再進行比較,也就是說 0=="0" 會返回true。(課外題:數字和字符串比較的時候,PHP是按什麼規則來進行字符串的數字轉換?)
ui
可是某些場景下,咱們除了進行數字比較之外,還須要精確的類型比較,這種時候就須要「===」運算符來處理了,使用「===」運算符PHP會先校驗兩邊變量的類型,若是類型不相同則會直接返回false。this
同理,判斷不等於也有「!=」和「!==」兩種比較運算符。spa
課後習題:
FALSE=="";
0=="0abc";
0=="0123";
0==0.0;
0==[];
"0abc=="";
''=="";
若是這些能作到全對,那麼這關你就跨過去了,須要答案的童鞋能夠在公衆號給趙童鞋留言哦。
在PHP中,全部函數都須要使用function關鍵字來標識。
如:
function fun(){
echo "HelloWorld!!!";
}
複製代碼
在類裏的方法則自帶了$this變量,用來指示當前調用方法的對象。(課外題:童鞋們還記得以前講解的函數和方法有什麼區別嗎?)
在許多編程語言中,方法調用都是使用「.」符號來完成的。
如:
this.sayHello();
但在PHP中,「.」運算符已經被用做字符串鏈接符了,因此須要使用->符號來進行方法的調用,這個符號是否是很是形象(簡單粗暴)呢?
如:
$this->sayHello();
在函數這裏我須要着重講解一下,PHP中兩個經常使用的內置函數empty()
和isset()
。
有許多剛入門PHP的童鞋可能會常常搞混這兩個函數的使用區別。
首先是empty()
函數的官方解釋:
如下的東西被認爲是空的:
而後是isset()函數的官方解釋:
可能有童鞋看完解釋仍是一頭霧水,其實他們的區別就是對於NULL
值的判斷。
empty()
函數來判斷。isset()
函數來判斷。PHP的面向對象又是那些什麼繼承啊,多態啊,父類啊,子類啊,爲何這麼累啊的東西,和大部分編程語言的同樣,我就不寫了。
上面只是開玩笑的,面向對象是目前編程語言的一個趨勢,甚至Javascript在ES6以後也支持了Class的寫法。
可是直接來說面向對象我我的以爲是很是枯燥的一件事情,並且對一個初學者講構造函數、析構函數、繼承、多態之類的東西會很容易繞暈,更多數的狀況是隻有「哦~原來這樣,而後呢?」這種體會,沒兩天就忘光光了。
因此我認爲面向對象這方面若是是有其餘語言經驗的童鞋,應該不太須要再重頭學一遍,而初學者的話咱們在後面結合項目再來說解就會更加容易理解,並且體會也是徹底不同的。
PHP的語法講解通過兩個章節算是基本講完了。
什麼?你說就這麼短?許多的教程語法都要講四五節課以上?
那是很正常的,由於趙童鞋跳過了大量的細節,我認爲入門一個新的知識應該只花20%的時間來學習80%常常用到的知識才是最高效的,大量的細節咱們在後面再來慢慢補充。
什麼?你以爲本身什麼都沒學到?
那也是很正常的,能過目一遍就所有理解所有掌握的人始終是很是少數的,許多知識都要通過大量的練習才能真正的領悟到。
後面的章節咱們就直接進入到框架的學習。
----- End -----
更多好文
請掃描下面二維碼
歡迎關注~