两个问题:(1)
类里头的常量是否允许实例双冒号的形式直接访问,张恩民同学不可以?实际情况如何?<?php
class A{
    const mm=10;
    function __construct(){
        echo self::mm;
    }
}
echo $a::mm;
?>(2)
静态成员,通过实例来调用,这样的方式好么?为何
<?php
class A{
    public static $mm=10;
}
$a=new A;
echo $a::$mm;
?>

解决方案 »

  1.   

    回2楼。
    (1)
    第一个例子,我问的是,实例用双冒号的形式来调常量,这样的形式是否可以,多见吗?
    <?php
    class A{
      const mm=10;
      function __construct(){
      echo self::mm;
      }
    }
    $a=new A;
    echo $a::mm;
    ?>(2)
    第二个问题,静态成员,通过实例来调用,这样的方式好么?虽然我也知道A::$mm的形式也可以,只是希望有经验比较多的同学来回答,在长期使用的过程中,哪种更加常用?
    <?php
    class A{
      public static $mm=10;
    }
    $a=new A;
    echo $a::$mm;
    ?>
      

  2.   

    非要把给编译程序使用的语法成分强加给解释型的php
    这是php的败笔类的常量和静态成员与常量和函数除了作用域不同外没有什么区别
      

  3.   


    class B{
      const mm=10;
      function __construct(){
      echo self::mm;
      }
    }
    echo B::mm;
    #10class C {
      public static $mm=11;
    }
    $class_a=new C;
    echo $class_a::$mm;
    #11