class a{
static $s = 0;
var $v = 1;
function f(){
echo 'sss';
}
function f1(){
$this->f();
}
function f2(){
self::f();
}
}
1.$s 是类 a 里的静态属性. 这个属性是属于这个类的. 而不是对象的,所以可以直接调用.
echo a::$s;//输出是0
/*对象是不能用的*/
$o = new a;
var_dump($o->s);//输出是NULL
$o->$s;//这里会报错(Fatal error: Cannot access empty property in /var/www/test.php)
echo $o::$s;//这是可以用的.输出0
2. $v 这个是类的普通属性, 这种属性是属于对象的, 而不是类的,必须先用这个类形成一个对象.通过这个对象才能调用
$o = new a;
echo $o->v;//输出1
3.类的方法,没有特殊声明的方法的属于public方法,类和对象都能用
a::f()//可用
$o = new a;
$o->f();//可用
4.在类和对象内部调用的方法
$this 表示对象内的调用.只有在用类(class)生成一个对象后, $this 代表本对象
$o = new a;
$o->f1();//这是对的
a::f1()//会报错(Fatal error: Using $this when not in object context )
/*self 类内部的调用方法.调用本类内的方法.*/
$o = new a;
$o->f2();//这是对的;
a::f2();//这是对的;