zoukankan      html  css  js  c++  java
  • PHP类中一般方法与静态方法的疑问

    <?php
    /*
    产品类
    */
    class Product{
        public static $Count=0;
        public $Name='';
        
        public function Show(){
            print('<p>Show Method</p>');
        }
        
        public static function Display(){
            print('<p>Display Static Method</>');
        }
    }
    
    $class = new ReflectionClass('Product');
    print "<pre>";
    Reflection::export($class);
    print "</pre>";
    
    Product::Display();
    Product::Show();//为什么非静态方法在这里也可以用::的方式访问?
    ?>
    Class [  class Product ] {
      @@ D:\WebRoot\static.php 5-16
    
      - Constants [0] {
      }
    
      - Static properties [1] {
        Property [ public static $Count ]
      }
    
      - Static methods [1] {
        Method [  static public method Display ] {
          @@ D:\WebRoot\static.php 13 - 15
        }
      }
    
      - Properties [1] {
        Property [  public $Name ]
      }
    
      - Methods [1] {
        Method [  public method Show ] {
          @@ D:\WebRoot\static.php 9 - 11
        }
      }
    }
    
    

    Display Static Method

    Show Method

    以上是程序执行的结果,Show方法明明是一个一般方法,为什么也可以用Product::Show()访问,程序并不会出错,这样访问和静态方法的访问不是一样吗?要是真是这样,那还要静态方法干吗?请哪位有明白的指点一二。谢谢!!!

  • 相关阅读:
    [置顶] 输入子系统
    多线程知识点总结
    mybatis知识点总结
    redis知识点及常见面试题
    spring知识点(面试题)
    【linux】vim常用命令
    Linux常用命令大全
    Java 位运算(移位、位与、或、异或、非)
    图论之堆优化的Prim
    BZOJ3261 最大异或和 解题报告(可持久化Trie树)
  • 原文地址:https://www.cnblogs.com/Athrun/p/php_class_method.html
Copyright © 2011-2022 走看看