PHP知識難點TOP3,你都知道嗎?
php雖然容易入門,但是要想深入,還是有些路要走的,今天我們就來聊聊php一些比較難理解的知識點。
use
php從5.3.0開始引入了一個叫作命名空間的新特徵,讓我們能夠定義相同的類和處理與第三方庫同名類的時候有了很好的解決方案,在一個命名空間裡面能夠包括類、函數、介面和常量,有了命名空間以後,在其他地方需要使用命名空間時,需要使用use引入該命名空間或者為該命名空間定義一個別名再使用,這是use的第一種使用情況,特別注意的是,這裡的use並沒有將其對應的文件載入進來。
在使用php的時候,我們發現有很多函數有一個回調函數的參數,我們可以使用匿名函數(也叫閉包來實現),同時,我們知道在php的函數裡面無法直接用外部的變數,那麼在閉包裡面要使用外面的變數,怎麼辦呢?參考下面的例子,用use就可以做到,這是use的第二種用法。
至於use的第三種用法請看下面的Traits。
Traits
我們知道,php不像C++一樣,是多繼承語言,它是一種單繼承語言,如果有時我們需要繼承多個類怎麼辦?這個時候Traits就上場了,我們僅僅需要在類中用use聲明多個trait,這樣當前類中的同名方法覆蓋trait,而trait又覆蓋基類中的同名方法,屬性也是一樣的。
錯誤和異常的區別
不管是錯誤發生還是某種異常我們未捕獲,我們的程序都會出現問題,而且不管是錯誤還是未捕獲異常,二者的表現都是一樣的,導致我們對錯誤和異常的理解總是很模糊,其實異常就是理論上程序沒有問題,但是運行的時候,因為某些特殊的情況而終止了程序的運行,比如鏈接資料庫的操作,如果一切都好,那麼我們應該可以正常的鏈接資料庫,但是當資料庫的可用連接數沒有了,或者無法鏈接資料庫,那麼這個時候,如果沒有捕獲這個異常,肯定是會出錯的。
最後
如果大家覺得這篇文章還不錯,請給予一個贊或者分享給你的好友,如果你有更多好的經驗或問題,請在評論中和大家分享一下。


※谷歌 CEO 表示:比編程能力更重要的是持續學習
※網頁不會布局?來告訴你5種你不可不知的WEB布局方式
TAG:WEB開發李家靖 |