最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP面向?qū)ο笾衝ew self()與 new static()的區(qū)別淺析

 更新時間:2017年08月17日 11:42:43   作者:KevinYan  
new static()是在PHP5.3版本中引入的新特性,無論是new static()還是new self(),都是new了一個新的對象。下面這篇文章主要給大家介紹了關于PHP面向?qū)ο笾衝ew self()與 new static()的區(qū)別,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

本文主要跟大家介紹了關于PHP面向?qū)ο笾衝ew self()與 new static()的區(qū)別,這兩個方法new出來的對象有什么區(qū)別呢,說白了就是new出來的到底是同一個類實例還是不同的類實例呢?下面話不多說了,來一起看看詳細的介紹吧。

區(qū)別如下:

首先闡明結論,在PHP中 self指向定義了當前被調(diào)用方法的類, static指向調(diào)用當前靜態(tài)方法的類。

接下來通過一個例子來證明上面的結果

class A 
{
 public static $_a = 'Class A';

 public static function echoProperty()
 {
 echo self::$_a . PHP_EOL;
 }
}

class B extends A 
{
 public static $_a = 'Class B';
}

$obj = new B();
B::echoProperty();//輸出 Class A

之所以會這樣是因為使用self:: 或者__CLASS__對當前類的靜態(tài)引用,取決于定義被調(diào)用方法所在的類,將上面Class A的方法echoProperty做一下修改變成:

class A 
{
 public static $_a = 'Class A';

 public static function echoProperty()
 {
 echo static::$_a . PHP_EOL;
 }
}
//再次調(diào)用B::echoProperty將輸出 'CLASS B'

為了避免上面第一個例子中看到的子類重寫父類的靜態(tài)屬性后,使用繼承來的方法仍然訪問父類的靜態(tài)屬性, PHP5.3增加了一個新的語法:后期靜態(tài)綁定(Late static binding), 使用static關鍵字替代self關鍵字,使得static指向與get_called_class()返回的相同的類,即當前調(diào)用靜態(tài)方法的類, 該關鍵字對于靜態(tài)方法的訪問同樣有效。

下面的例子更好的說明了new self()和new static()之間的差異(后者使用了PHP的后期靜態(tài)綁定指向調(diào)用方法的當前類)

class A 
{
 public static function get_self() 
 {
 return new self();
 }

 public static function get_static() 
 {
 return new static();
 }
}

class B extends A {}

echo get_class(B::get_self()); // A
echo get_class(B::get_static()); // B
echo get_class(A::get_self()); // A
echo get_class(A::get_static()); // A

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • 淺談PHP中pack、unpack的詳細用法

    淺談PHP中pack、unpack的詳細用法

    這篇文章主要介紹了淺談PHP中pack、unpack的詳細用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 解決laravel session失效的問題

    解決laravel session失效的問題

    今天小編就為大家分享一篇解決laravel session失效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 淺談php fopen下載遠程文件的函數(shù)

    淺談php fopen下載遠程文件的函數(shù)

    下面小編就為大家?guī)硪黄獪\談php fopen下載遠程文件的函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • Laravel 4 初級教程之Pages、表單驗證

    Laravel 4 初級教程之Pages、表單驗證

    本篇教程是本系列的完結篇,要做的是Pages的詳細管理功能,表單驗證以及命名空間的深度使用,和一個更好用的通知組件,并且布置一個簡單的大作業(yè)。
    2014-10-10
  • PHP date函數(shù)常用時間處理方法

    PHP date函數(shù)常用時間處理方法

    這篇文章主要介紹了PHP date函數(shù)常用時間處理方法,本文介紹獲取今天、明天、昨天、一周后、一個月前、一個月后等時間的方法,需要的朋友可以參考下
    2015-05-05
  • 如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化

    如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化

    這篇文章主要介紹了如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化,其實原理就是通過構建原生SQL來創(chuàng)建并初始化數(shù)據(jù)庫,連接數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫、使用數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表、新增數(shù)據(jù)、關閉連接,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • 19個超實用的PHP代碼片段

    19個超實用的PHP代碼片段

    每位程序員和開發(fā)者都喜歡討論他們最愛的代碼片段,尤其是當PHP開發(fā)者花費數(shù)個小時為網(wǎng)頁編碼或創(chuàng)建應用時,他們更知道這些代碼的重要性。為了節(jié)約編碼時間,小編收集了一些較為實用的代碼片段,幫助開發(fā)者提高工作效率
    2014-03-03
  • 基于laravel緩沖cache的用法詳解

    基于laravel緩沖cache的用法詳解

    今天小編就為大家分享一篇基于laravel緩沖cache的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 小偷PHP+Html+緩存

    小偷PHP+Html+緩存

    小偷PHP+Html+緩存...
    2006-12-12
  • thinkPHP5框架實現(xiàn)分頁查詢功能的方法示例

    thinkPHP5框架實現(xiàn)分頁查詢功能的方法示例

    這篇文章主要介紹了thinkPHP5框架實現(xiàn)分頁查詢功能的方法,結合實例形式分析了thinkPHP5實現(xiàn)分頁查詢功能的相關控制器、模板等操作技巧,需要的朋友可以參考下
    2018-03-03

最新評論

罗定市| 唐河县| 得荣县| 瑞金市| 定陶县| 闻喜县| 大邑县| 日土县| 响水县| 营山县| 湘西| 南阳市| 贵溪市| 德州市| 甘谷县| 贡嘎县| 会东县| 普定县| 准格尔旗| 平阴县| 凤阳县| 乐昌市| 武隆县| 胶州市| 南宫市| 朝阳市| 门头沟区| 昂仁县| 聊城市| 宁都县| 南投县| 江门市| 宿迁市| 吴忠市| 宁德市| 横山县| 册亨县| 宝坻区| 玉山县| 姚安县| 新巴尔虎左旗|