PHP开发 加入小组

298个成员 3006个话题 创建时间:2011-05-30

PHP面向对象编程-静态变量和全局变量

发表于 2015-12-23 1453 次查看

例子:往一个水杯中不断倒水,如何知道现在水杯中有多少水?

杯子 --> 类(class)

水 --> 类的属性

倒水 --> 类的一个方法

解决这个问题有2中方法:使用全局变量和静态变量

全局变量:

<?php 
global $allWater; //全局变量

$allWater = 0 ; //初始化全局变量(水杯中开始没有水)

class Cup{

    private $water;

    public function pourWater($water)
    {
        global $allWater;
        $allWater += $water;
        echo "现在杯子中总共有:".$allWater."毫升的水\n";
    }
}

$cup = new Cup();
$cup->pourWater('100');  //往杯子中倒入100毫升水

$cup->pourWater('200');  //往杯子中倒入200毫升水

$cup->pourWater('300');  //往杯子中倒入300毫升水

 ?>

静态变量:

<?php 

class Cup{
    private static $allWater = 0; //初始化静态变量(水杯中开始没有水)
    public function pourWater($water)
    {
        //2种访问静态变量的方式
        self::$allWater += $water;
        //Cup::$allWater += $water;
        echo "现在杯子中总共有:".self::$allWater."毫升的水\n";
    }
}

$cup = new Cup();
$cup->pourWater('100');  //往杯子中倒入100毫升水

$cup->pourWater('200');  //往杯子中倒入200毫升水

$cup->pourWater('300');  //往杯子中倒入300毫升水

 ?>

发表回复
功能维护升级中,维护完成完后将再次开放,非常抱歉给您学习造成的不便。