为什么这会报错

<?php
class aa{
   static public  $zz = 8;
   public function a1(){
        $a=1;
        $this->a2();
        return $a;

    }
    
    public function a2(){
        $this->zz +=1;
    }
}

$k = new aa();
$k->a1();
$k->a2();
 
echo $k->zz;
echo '<br>';
echo $k->a1();
die();

Strict Standards: Accessing static property aa::$zz as non static in D:WWWclient.php on line 13

Notice: Undefined property: aa::$zz in D:WWWclient.php on line 13

Strict Standards: Accessing static property aa::$zz as non static in D:WWWclient.php on line 27
2

Strict Standards: Accessing static property bb::$zz as non static in D:WWWclient.php on line 13

Notice: Undefined property: bb::$zz in D:WWWclient.php on line 13
1

阅读 3.9k
3 个回答

静态成员变量只能由静态方法访问,静态方法只能访问静态成员

访问静态成员方式:

类内调用
self::$zz += 1;

类外调用
aa::$zz;

你申明了$zz是static静态变量,然后你用$this去调用,能不出问题?

静态成员变量用静态的方式调用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题