7.7.2 static关键字的使用1
static关键字表示静态的意思, 用于修饰类的成员属性和成员方法(即为静态属性和静态方法)。
类中的静态属性和静态方法不用实例化(new)就可以直接使用类名访问。格式:
类::$静态属性 类::静态方法
在类的方法中,不能用this来引用静态变量或静态方法,而需要用self来引用。格式:
self::$静态属性 self::静态方法
静态方法中不可以使用非静态的内容。就是不让使用$this。
在一个类的方法中若没有出现$this的调用,默认此方法为静态方法。
静态属性是共享的。也就是new很多对象也是共用一个属性。
test.php
<?php
/*
* static 可以修饰属性和方法, 不能修饰类
*
*
* 1. 使用static 修饰成员属性, 存在内存的初使化表态段.
* 2. 可以被所有同一个类的对象共用
* 3. 第一个用到类(类名第一次出现), 类在加载到内存时, 就已经将静态的成员加到了内存
*
* 对象 -> 成员
* 类 :: 成员
*
* 4. 静态的成员一要使用类来访问,
*
*
*/
class Person {
public $name;
public $age;
public $sex;
public static $country = "中国";
function __construct($name, $age, $sex) {
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}
public function say() {
echo "我的名子是:{$this->name},我的年龄是:{$this->age},我的性别是:{$this->sex}。<br>";
}
function eat() {
}
function run() {
}
}
$p = new Person("zs", 30, "aa");
echo $p->country;
/*
$p1 = new Person("zhangsna1", 10, "男");
$p2 = new Person("zhangsna2", 10, "女");
$p3 = new Person("zhangsna3", 11, "男");
$p4 = new Person("zhangsna4", 12, "男");
$p5 = new Person("zhangsna5", 13, "男");
*/