程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 中 new static 和 new self 的區別,staticself

PHP 中 new static 和 new self 的區別,staticself

編輯:關於PHP編程

PHP 中 new static 和 new self 的區別,staticself


        今天老大在公司 問了一下  new static  和 new self 的區別 公司十個程序 竟然沒有一個回答上來 後面畫面自補 。。。

 

本屌絲回家後 就百度了解了下 這二者區別 :

使用 self:: 或者 __CLASS__ 對當前類的靜態引用,取決於定義當前方法所在的類:

使用 static:: 不再被解析為定義當前方法所在的類,而是在實際運行時計算的。也可以稱之為“靜態綁定”,因為它可以用於(但不限於)靜態方法的調用。

 

簡單通俗的來說, self就是寫在哪個類裡面, 實際調用的就是這個類.所謂的後期靜態綁定, static代表使用的這個類, 就是你在父類裡寫的static,

然後通過子類直接/間接用到了這個static, 這個static指的就是這個子類, 所以說static和$this很像, 但是static可以用於靜態方法和屬性等.

請看列子

 

 

<?php
class Person
{
    public static function name()
    {
        echo "xiaosan";
    }
    public static function callself()
    {
        self::name();
    }

    public static function callstatic()
    {
        static::name();
    }
}

class Man extends Person
{
    public static function name()
    {
        echo "gaojin";
    }
}
Man::name();  // output: gaojin
Person::callself();  // output: xiaosan
Person::callstatic();  // output:gaojin
?>

 

  小編繼續學習中 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved