php中静态变量和静态方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中静态变量和静态方法相关的知识,希望对你有一定的参考价值。
1,静态变量:所有对象共享的变量成为静态变量。静态变量类似于全局变量,不过全局变量破坏对象的封装性,因此其对应于面向过程;静态变量对应于面向对象。
2,全局变量,全局变量的使用实例如下,声明全局变量时候 global $global_nums;在局部函数中使用全局变量时候,需要先声明下全局变量再使用,声明时候系统会在栈区创建一个变量,这变量存放地址,指向全局区的全局变量。
<?php /** * Created by PhpStorm. * User: usa007lhy * Date: 2015/10/15 * Time: 21:38 */ global $global_nums; $global_nums = 0; class Child{ public $name; function __construct($name){ $this->name = $name; } public function join_game(){ global $global_nums; $global_nums++; echo $this->name."加入玩雪球游戏<br/>"; } } $child1 = new Child(‘小刚‘); $child1->join_game(); echo $global_nums."个人加入堆雪球的游戏。<br/>" ?>
程序变化时候,内存变化如下图所示
3,静态变量
静态变量只能被类访问,访问静态变量有两种方式,(1)类名::静态变量,任何位置可以使用;(2)self::静态变量,只能在类内部使用,即只能适用于成员函数。
<?php /** * Created by PhpStorm. * User: usa007lhy
* Author: www1.qixoo.com
* Date: 2015/10/15 * Time: 21:38 */ class Child{ public static $nums = 0; public $name; function __construct($name){ $this->name = $name; } public function join_game(){ self::$nums++; echo $this->name."加入玩雪球游戏<br/>"; } } $child1 = new Child(‘小刚‘); $child1->join_game(); echo Child::$nums."个人加入堆雪球的游戏。<br/>" ?>
程序运行时,内存变化如下:
4,静态方法
以上是关于php中静态变量和静态方法的主要内容,如果未能解决你的问题,请参考以下文章
php静态变量理解----(变量前面添加static关键字)
PHP类的静态(static)方法和静态(static)变量使用介绍