欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP new static 和 new self詳解

 更新時間:2017年02月19日 16:49:50   投稿:hebedich  
使用 self:: 或者 __CLASS__ 對當前類的靜態(tài)引用,取決于定義當前方法所在的類:使用 static:: 不再被解析為定義當前方法所在的類,而是在實際運行時計算的。也可以稱之為“靜態(tài)綁定”,因為它可以用于(但不限于)靜態(tài)方法的調(diào)用。

最近在一個視頻的評論被問到一個小問題:這里選擇用static 而不是self有特殊的考慮么?或者我們可以這樣轉(zhuǎn)換一下問題:

PHP 的 new static 和 new self 具體有什么?

其實這個來看一個例子應(yīng)該就很清晰了:

class Father {

 public static function getSelf() {
  return new self();
 }

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

class Son extends Father {}

echo get_class(Son::getSelf()); // Father
echo get_class(Son::getStatic()); // Son
echo get_class(Father::getSelf()); // Father
echo get_class(Father::getStatic()); // Father

這里面注意這一行 get_class(Son::getStatic()); 返回的是 Son 這個 class,可以總結(jié)如下:

new self

1.self返回的是 new self 中關(guān)鍵字 new 所在的類中,比如這里例子的 :

public static function getSelf() {
  return new self(); // new 關(guān)鍵字在 Father 這里
 }

始終返回 Father

new static

2.static 則上面的基礎(chǔ)上,更聰明一點點:static 會返回執(zhí)行 new static() 的類,比如 Son 執(zhí)行 get_class(Son::getStatic()) 返回的是 Son, Father 執(zhí)行 get_class(Father::getStatic()) 返回的是 Father

而在沒有繼承的情況下,可以認為 new selfnew static是返回相同的結(jié)果。

Tips: 可以用一個好的 IDE 來直接看注釋。比如 PhpStorm:

Happy Hacking

相關(guān)文章

  • php 無限極分類

    php 無限極分類

    至于添加刪除之類的功能我就不多寫了!仔細看看就知道這么用了. 難的是顯示方面 希望高手擴展一下! 這是類
    2008-03-03
  • php查詢類的方法總結(jié)

    php查詢類的方法總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于php查詢類的方法總結(jié)內(nèi)容,對此有興趣的朋友們可以跟著學(xué)習下。
    2022-01-01
  • 啟用Csrf后POST數(shù)據(jù)時出現(xiàn)的400錯誤

    啟用Csrf后POST數(shù)據(jù)時出現(xiàn)的400錯誤

    這篇文章主要介紹了啟用Csrf后POST數(shù)據(jù)時出現(xiàn)的400錯誤的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • PHP+MariaDB數(shù)據(jù)庫操作基本技巧備忘總結(jié)

    PHP+MariaDB數(shù)據(jù)庫操作基本技巧備忘總結(jié)

    這篇文章主要介紹了PHP+MariaDB數(shù)據(jù)庫操作基本技巧,結(jié)合實例形式總結(jié)分析了PHP+MariaDB數(shù)據(jù)庫連接、判斷以及基于PHP+MariaDB的用戶登陸、管理、刪除等相關(guān)操作實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2018-05-05
  • phpmyadmin的#1251問題

    phpmyadmin的#1251問題

    phpmyadmin的#1251問題...
    2006-11-11
  • PHP 加密解密內(nèi)部算法

    PHP 加密解密內(nèi)部算法

    最近學(xué)習URL跳轉(zhuǎn)的時候新進三個超好用的PHP加密解密函數(shù),貌似是discuz里的…使用這些加密解密的原因是因為有時自己的URL地址被人獲取以后想破解你里面?zhèn)髦档膬?nèi)容就必須知道你的key,沒有key,他應(yīng)該要破了一陣子才能知道你URL里面的內(nèi)容吧。
    2010-04-04
  • PHP中iconv函數(shù)知識匯總

    PHP中iconv函數(shù)知識匯總

    iconv函數(shù)庫能夠完成各種字符集間的轉(zhuǎn)換,是php編程中不可缺少的基礎(chǔ)函數(shù)庫。本文內(nèi)容是參考了網(wǎng)上的其他資源,然后結(jié)合自己的實踐,有需要的小伙伴可以參考下。
    2015-07-07
  • PHP類的封裝與繼承詳解

    PHP類的封裝與繼承詳解

    類是面向?qū)ο笾械闹匾拍?,而封裝和繼承是面向?qū)ο蟮闹匾攸c。這篇文章我們就重點討論一下封裝、繼承這兩個特點,給出一些列子,供大家學(xué)習參考。
    2015-09-09
  • 如何在symfony中導(dǎo)出為CSV文件中的數(shù)據(jù)

    如何在symfony中導(dǎo)出為CSV文件中的數(shù)據(jù)

    如果您需要在symfony中將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出為CSV文件,試試這個
    2011-10-10
  • php數(shù)組操作之鍵名比較與差集、交集賦值的方法

    php數(shù)組操作之鍵名比較與差集、交集賦值的方法

    這篇文章主要介紹了php數(shù)組操作之鍵名比較與差集、交集賦值的方法,涉及PHP針對數(shù)組的各種常見操作,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-11-11

最新評論