当前位置:首页 > PHP教程 > php函数 > 列表

PHP中static和self的区别

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-06 08:24:40 浏览: 评论:0 

使用 self:: 或者 __CLASS__对当前类的静态引用,取决于定义当前方法所在的类:

使用 static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。

静态绑定是PHP 5.3.0,增加的一个功能 用于在继承范围内引用静态调用的类

简单通俗的来说,

self就是写在哪个类里面, 实际调用的就是这个类.

static代表使用的这个类, 就是你在父类里写的static,然后被子类覆盖,使用的就是子类的方法或属性

  1. <?php 
  2.  
  3. class Person 
  4.  
  5.  
  6.     public static function name() 
  7.  
  8.     { 
  9.  
  10.         echo "111"
  11.  
  12.         echo "<br />"
  13.  
  14.     } 
  15.  
  16.     public static function callself() 
  17.  
  18.     { 
  19.  
  20.         self::name(); 
  21.  
  22.     } 
  23.  
  24.  
  25.  
  26.     public static function callstatic() 
  27.  
  28.     { 
  29.  
  30.         static::name(); 
  31.  
  32.     } 
  33.  
  34.  
  35.  
  36.  
  37. class Man extends Person 
  38.  
  39.  
  40.     public static function name() 
  41.  
  42.     { 
  43.  
  44.         echo "222"
  45.  
  46.         echo "<br />"
  47.  
  48.     } 
  49.  
  50.  
  51.  
  52.  
  53. Man::callself();  // output: 111 
  54.  
  55. Man::callstatic();  // output: 222 
  56.  
  57. ?>

Tags: static self

分享到: