-
static 修饰的类方法为静态方法,在静态方法中只能调用静态变量,不能调用普通变量
-
在类的内部访问该类的静态方法
self::静态方法名
-
在类的内部访问父类的静态方法
parent::静态方法名
-
在类的外部访问静态方法
类名::静态方法名
在类的内部访问该类的静态方法
<?php
header("Content-type:text/html;charset=utf-8");
class People{
public static function introduceMySelf(){ //定义静态类方法
echo '本府芳名不便告知,望谅解!<br>';
}
public static function introduceSomeone($name){ //定义静态类方法
if ($name == '我') {
self::introduceMySelf(); //调用静态类方法
}else{
echo '这就是人见人爱花见花开的'.$name.'同学!<br>';
}
}
}
?>
在类的内部访问父类的静态方法
在类的外部使用静态方法
<?php
header("Content-type:text/html;charset=utf-8");
class People{
public static function introduceMySelf(){ //定义静态类方法
echo '本府芳名不便告知,望谅解!<br>';
}
public static function introduceSomeone($name){ //定义静态类方法
echo '这就是人见人爱花见花开的'.$name.'同学!<br>';
}
People::introduceMySelf(); //调用无参数的静态方法
People::introduceSomeone('沫沫'); //调用带参数的静态方法
}
?>
类的属性
访问类的成员属性
在类的方法中访问类的属性,需要使用this
关键字。this
是一个特殊变量,只能在类的内部使用,用于获得类的某个属性。
$this->属性名 //注意这里的属性名前没有$
<?php
header("Content-type:text/html;charset=utf-8");
class People{
public $name;
public function introduceSomeone(){ //定义静态类方法
echo '我就是人见人爱花见花开的'.$this->name.'同学!<br>'; //这里的属性名前不要加$
}
}
$p = new People(); //实例化People类
$p->name = '沫沫'; //修改类的属性
$p->introduceSomeone(); //调用类的方法
?>
静态属性
定义静态类的属性
[访问控制修饰符] static 属性名;
访问静态属性
-
在类的内部访问该类的静态属性
self::$静态属性名
-
在类的内部访问父类的静态属性
parent::$静态属性名
-
在类的外部访问类的静态属性(前提时该属性可以访问)不要实例化类就可以直接调用,格式为:
类名::$静态属性名
注意这里的静态属性名前带有 $
<?php
header("Content-type:text/html;charset=utf-8");
class People{
static $number = 1;
}
echo '$number = '.People::$number.'<br>';
++People::$number;
echo '$number = '.People::$number.'<br>';
$a = People::$number + People::$number;
echo '$number + $number = '.$a.'<br>';
?>
常量
定义常量:
const 常量名 = '值'; //注意常量名前面没有$
注意:
- 常量名前面没有 $
- 常量在定义时需要赋初始值
- 常量名字母一般全部大写
访问常量
-
在类的内部访问该类的常量:
self::常量名;
-
在类的内部访问访问父类的常量名:
parent::常量名;
-
在类的尾部访问常量成员时,不需要实例化类,也不需要用操作符
->
,而是是哟个作用域符::
。语法格式为:类名::常量名;
(这里的常量名前面也不加$)