1. 创建对象$object = new Class(),然后使用"->"调用:$object->attribute/function,前提是该变量/方法可访问。
2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:
A. 如果是变量,需要该变量可访问。
B. 如果是方法,除了该方法可访问外,还需要满足:
b1) 如果是静态方法,没有特殊条件;
2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:
A. 如果是变量,需要该变量可访问。
B. 如果是方法,除了该方法可访问外,还需要满足:
b1) 如果是静态方法,没有特殊条件;
b2) 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。
<?php
/*
1:静态属性/方法,属于全类,而不属于对象.
2:在内存中,只有一份.
3:调用静态属性/方法,用类名::$属性名,类名::方法名()来调用, 不依赖对象
*/
class human {
static public $leg = 2; // 这个数字2不属于张三,不属于李四,而属于全人类,
static public function ins() {
echo self::$leg; // self表示本类, $this 表示本对象
}
public $name;
public function __construct($name) {
$this->name = $name;
}
public function showleg() {
echo human::$leg;
}
}
// 不创建任何实例/对象, 调用human的$leg静态属性
echo human::ins(); //
echo '<br/>';
$zhangsan=new human('zhangsan');
$zhangsan->showleg();