php static 变量访问,PHP static,global变量

1、全局变量

全局变量只能先定义,再进行初始化,不能直接初始化,或初始化和定义写到一起。<?php

//定义,全局变量

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+=1;

echo $this->name."加入堆雪人游戏
";

}

}

//创建3个小孩

$child1=new Child("aaa");

$child1->join_game();

$child2=new Child("bbb");

$child2->join_game();

$child3=new Child("ccc");

$child3->join_game();

echo $global_nums;

?>

2、static 静态变量使用

静态变量只能定义在类中,使该类的所有对象共享的变量,任何一个该类的对象去访问他时,取到的数值都是一样的,同样任何一个该类的变量去修改他时,修改的都是同一个变量。

如何访问静态变量:

在类外部:类名::$类变量名

在类内部:self::$类变量名  或者   类名::$类变量名<?php

class Child{

public $name;

public static $nums=0;

function __construct($name){

$this->name=$name;

}

public function join_game(){

//类内部访问 2中如下

//Child::$nums+=1;

self::$nums+=1;

echo $this->name."加入堆雪人游戏
";

}

}

//创建3个小孩

$child1=new Child("aaa");

$child1->join_game();

$child2=new Child("bbb");

$child2->join_game();

$child3=new Child("ccc");

$child3->join_game();

$child4=new Child("ddd");

$child4->join_game();

//外部访问

echo Child::$nums;

?>

下面是简单的实例,加深对上面的理解:<?php

/*

//第一种情况

class Person{

public static $a=90;

}

echo Person::$a;

// 输出不会报错打印:90

*/

/*

//第二种情况

class Person{

public static $a=900;

public function __construct(){

$this->a=45;//(1)

}

}

echo Person::$a;

//不会报错,输出900;(1)写法是错误的,但是因为没有创建对象,

//所以不会被调用,也就不会出错~

*/

//第三种情况“

class Person{

public static $a=9011;

public function __construct(){

$this->a=45;//(1)

}

}

$p1=new Person();

echo Person::$a;

//(1)写法是错误的,但是因为创建了对象,被调用

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值