趙童鞋帶你入門PHP(四) PHP進階語法

閱讀時長:10分鐘編程

技術預備:PHP基礎語法數組

經過上一篇的學習,相信童鞋們已經大概瞭解了PHP的變量和數組,這篇雖然叫進階語法,但其實也仍是基礎語法,只是爲了和上一篇作一個區別。(在編程界再怎麼高級的東西始終會在時間的車輪下變成基礎)bash

本節主要講解PHP的運算符、函數和麪向對象。框架

依照上一節的特性,一些太簡單的如 $a=$b+$c; 這種基礎操做就跳過了,咱們主要來說講PHP的一些騷操做。編程語言

1、運算符

大部分現代編程語言的運算符在PHP都實現了,這裏主要講解一下弱類型語言特有的「==」和「===」運算符。函數

在強類型語言中通常只有「==」這種運算符,那麼爲何弱類型語言會須要「===」運算符呢?學習

這是由於在弱類型語言,如PHP中,當數字0和字符串「0」相比較的時候,PHP會自動的把字符串轉換爲數字再進行比較,也就是說 0=="0" 會返回true。(課外題:數字和字符串比較的時候,PHP是按什麼規則來進行字符串的數字轉換?)ui

可是某些場景下,咱們除了進行數字比較之外,還須要精確的類型比較,這種時候就須要「===」運算符來處理了,使用「===」運算符PHP會先校驗兩邊變量的類型,若是類型不相同則會直接返回false。this

同理,判斷不等於也有「!=」和「!==」兩種比較運算符。spa

課後習題:

FALSE=="";

0=="0abc";

0=="0123";

0==0.0;

0==[];

"0abc=="";

''=="";

若是這些能作到全對,那麼這關你就跨過去了,須要答案的童鞋能夠在公衆號給趙童鞋留言哦。

2、函數

在PHP中,全部函數都須要使用function關鍵字來標識。

如:

function fun(){
    echo "HelloWorld!!!";
}
複製代碼

在類裏的方法則自帶了$this變量,用來指示當前調用方法的對象。(課外題:童鞋們還記得以前講解的函數和方法有什麼區別嗎?)

在許多編程語言中,方法調用都是使用「.」符號來完成的。

如:

this.sayHello();

但在PHP中,「.」運算符已經被用做字符串鏈接符了,因此須要使用->符號來進行方法的調用,這個符號是否是很是形象(簡單粗暴)呢?

如:

$this->sayHello();

在函數這裏我須要着重講解一下,PHP中兩個經常使用的內置函數empty()isset()

有許多剛入門PHP的童鞋可能會常常搞混這兩個函數的使用區別。

首先是empty()函數的官方解釋:

當var存在,而且是一個非空非零的值時返回 FALSE 不然返回 TRUE。

如下的東西被認爲是空的:

  • "" (空字符串)
  • 0 (做爲整數的0)
  • 0.0 (做爲浮點數的0)
  • "0" (做爲字符串的0)
  • NULL
  • FALSE
  • array() (一個空數組)
  • $var; (一個聲明瞭,可是沒有值的變量)

而後是isset()函數的官方解釋:

若是var存在而且值不是 NULL 則返回 TRUE,不然返回 FALSE。

可能有童鞋看完解釋仍是一頭霧水,其實他們的區別就是對於NULL值的判斷。

  • 當咱們須要判斷一個變量是否已聲明但值爲空的時候,就能夠用empty()函數來判斷。
  • 當咱們須要判斷一個變量是否未聲明或值爲NULL的時候,就能夠用isset()函數來判斷。

3、面向對象

PHP的面向對象又是那些什麼繼承啊,多態啊,父類啊,子類啊,爲何這麼累啊的東西,和大部分編程語言的同樣,我就不寫了。

上面只是開玩笑的,面向對象是目前編程語言的一個趨勢,甚至Javascript在ES6以後也支持了Class的寫法。

可是直接來說面向對象我我的以爲是很是枯燥的一件事情,並且對一個初學者講構造函數、析構函數、繼承、多態之類的東西會很容易繞暈,更多數的狀況是隻有「哦~原來這樣,而後呢?」這種體會,沒兩天就忘光光了。

因此我認爲面向對象這方面若是是有其餘語言經驗的童鞋,應該不太須要再重頭學一遍,而初學者的話咱們在後面結合項目再來說解就會更加容易理解,並且體會也是徹底不同的。

4、小結

PHP的語法講解通過兩個章節算是基本講完了。

什麼?你說就這麼短?許多的教程語法都要講四五節課以上?

那是很正常的,由於趙童鞋跳過了大量的細節,我認爲入門一個新的知識應該只花20%的時間來學習80%常常用到的知識才是最高效的,大量的細節咱們在後面再來慢慢補充。

什麼?你以爲本身什麼都沒學到?

那也是很正常的,能過目一遍就所有理解所有掌握的人始終是很是少數的,許多知識都要通過大量的練習才能真正的領悟到。

後面的章節咱們就直接進入到框架的學習。

----- End -----

更多好文

請掃描下面二維碼

歡迎關注~

相關文章
相關標籤/搜索