认识php对象

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();//这是对的;


你可能感兴趣的:(PHP)