-
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::常量名;
-
在類的尾部訪問常量成員時,不需要實例化類,也不需要用操作符
->
,而是是喲個作用域符::
。語法格式為:類名::常量名;
(這里的常量名前面也不加$)