nblogs-markdown">
title: php静态方法与静态属性
date: 2017-09-09
categories:
PHP学习笔记
tags:php
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::常量名;
在类的尾部访问常量成员时,不需要实例化类,也不需要用操作符
->
,而是是哟个作用域符::
。语法格式为:类名::常量名;
(这里的常量名前面也不加$)