我是靠谱客的博主 飘逸短靴,最近开发中收集的这篇文章主要介绍php类的静态属性,php学习之类与对象的类的静态属性,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

静态变量定义

静态变量是当前类的所有对象共享的变量,任何一个该类的对象去访问它时,取得的都是相同的值,同样任何一个该类的对象去修改它时,也时同样被修改

定义静态变量

访问修饰符 static 静态属性名;

static 访问修饰符 静态属性名;

两种方式都可以

访问静态变量

在类的内部访问:有两种方式

self::静态属性名;

类名::$静态属性名;

657930183f1144be7864417a58bd10a1.png

在类的外部访问

如果是在类的外部访问今天属性,静态属性需要是public,否则也不能直接访问,访问的形式是   类名::$属性名

$thishe self 的区别

使用方式不同

self::

$this->

self是类的范畴指向类,$this是对象实例,指向对象实例

静态变量的使用注意事项

如果在类的内部去使用静态变量,有两种形式,self::$静态变量,   类名::$静态变量, 静态属性可以是public、protected、private

在类的外部访问静态属性时 只能是类名::$静态属性名,要求是public

静态变量可以在定义时,直接初始化,普通的成员属性也可以

需求:

玩游戏时,当有人加入游戏时加一,最后统计有多少人加入游戏

优化前

//玩游戏时,当有人加入游戏时加一,最后统计有多少人加入游戏

class Game{

public $name ;

public $num = 0;

public function __construct($name){

$this->name = $name;

}

public function playGame(){

echo $this->name.'
加入游戏';

global $num ;

$num++;

}

}

$play1 = new Game('张三');

$play2 = new Game('李四');

$play3 = new Game('王五');

$play4 = new Game('赵六');

$play1->playGame();

$play2->playGame();

$play3->playGame();

$play4->playGame();

echo '总共有' . $num .'个人加入游戏';

?>

e772f9adb1d205e4d9d341163e5c4fa1.png

对代码进行优化!

静态变量:静态变量是属于所有对象,因此可以被所有的对象共享‘

//玩游戏时,当有人加入游戏时加一,最后统计有多少人加入游戏

class Game{

public $name ;

public static $num = 0;

public function __construct($name){

$this->name = $name;

}

public function playGame(){

echo $this->name.'
加入游戏';

//在类中调用静态变量的方法是self::变量名

self::$num++ ;

}

//定义个统计方法

public function count1(){

echo '总共有' . self::$num .'个人加入游戏';

}

}

$play1 = new Game('张三');

$play2 = new Game('李四');

$play3 = new Game('王五');

$play4 = new Game('赵六');

$play1->playGame();

$play2->playGame();

$play3->playGame();

$play4->playGame();

$play4->playGame();

$play4->count1();?>

c790d835d622898ab005d37bac4c95c2.png

静态方法内存图

00ba3fa46073ac68ada027da5c836c52.png

最后

以上就是飘逸短靴为你收集整理的php类的静态属性,php学习之类与对象的类的静态属性的全部内容,希望文章能够帮你解决php类的静态属性,php学习之类与对象的类的静态属性所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部