代码如下:
<?php
class Book{
static $num=0;
public function showme(){
echo '您是第'.self::$num.'位访客';
self::$num++;
}
}
$book1 = new Book();
$book1->showme();
echo"<br>";
$book2=new Book();
$book2->showme();
echo "<br>";
echo '您是第'.Book::$num.'位访客';
?>
结果是:
您是第0位访客
您是第1位访客
您是第2位访客
如果改掉static 变成 public 那么为什么会出现错误:Fatal error: Access to undeclared static property: Book::$num
虽然Book::$num是调用的类内部变量,可是如果我用了public不是哪都能访问的到么?
难道 Book::$num 必须是静态变量?
怎么回事?
静态变量不用实例化对象,当累第一次被加载时就已经分配了内存单元。
这句话,如果适应到这个程序的话,是不是class Book{
static $num=0;
public function showme(){
echo '您是第'.self::$num.'位访客';
self::$num++;
}
}
<?php
class Book{
static $num=0;
public function showme(){
echo '您是第'.self::$num.'位访客';
self::$num++;
}
}
$book1 = new Book();
$book1->showme();
echo"<br>";
$book2=new Book();
$book2->showme();
echo "<br>";
echo '您是第'.Book::$num.'位访客';
?>
结果是:
您是第0位访客
您是第1位访客
您是第2位访客
如果改掉static 变成 public 那么为什么会出现错误:Fatal error: Access to undeclared static property: Book::$num
虽然Book::$num是调用的类内部变量,可是如果我用了public不是哪都能访问的到么?
难道 Book::$num 必须是静态变量?
怎么回事?
这句话,如果适应到这个程序的话,是不是class Book{
static $num=0;
public function showme(){
echo '您是第'.self::$num.'位访客';
self::$num++;
}
}