class people{   var $name;
   private function greet(){ echo "hello";
   }
   function saygoodbye(){ echo "goodbye";
   }   function ye(){ $this->greet();
   }}    $keda=new people();
    $keda->ye();
    people::ye();为什么第一条可以输出,而第二条却会报错。
高手顺便解释一下::的用法吧,谢谢!

解决方案 »

  1.   

    楼上两位正解
    同时不能使用$this,因为调用静态时并没有实例
      

  2.   

    静态的变量或方法他不属于类的,只是挂载在类里面,所以不能用$this->只能用class::XXXX 了
      

  3.   


    class people{
       private $var="hello";
       private static $var1="123";   function people(){
    $this->var="456";
       }   function greet(){
            echo $this->var;
       }   static function greet1() {
      echo self::$var1;
       }}    $keda=new people();
        $keda->greet();
        people::greet1();
      

  4.   

    恩呢 楼上写全了,,亮点是 self::$var1;