zoukankan      html  css  js  c++  java
  • PHP面向对象编程静态变量(类变量)

    题目:有一群朋友在玩捉迷藏游戏,不时有新的小朋友加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决。
    解决这个问题有2中方法:使用全局变量和静态变量

    <?php
        //有一群朋友在玩捉迷藏游戏,不时有新的小朋友加入,
        //请问如何知道现在共有多少人在玩?
        //请使用面向对象的思想,编写程序解决。
    /*
        //1种方法使用全局变量
        
        global $global_nums;
        //先声明全局变量后再对它进行赋值
        $global_nums=0;
    
        class Child{
        
            public $name;
            
            //构造方法
            public function __construct($name){
                
                $this->name=$name;
            }
    
            //定义一个方法统计人数
            public function allPlay(){
                //先声明使用全局变量
                global $global_nums;
                $global_nums+=1;
                echo $this->name."加入游戏.<br/>";
            }
        }
    
        $p1=new Child("lily");
        $p1->allPlay();
        $p2=new Child("lucy");
        $p2->allPlay();
        $p3=new Child("kucy");
        $p3->allPlay();
        echo $global_nums;
    */
      //第二在类中 使用静态变量
    
        class Child{
            
            public $name;
            //在类中声明静态变量
            public static $allPlay=0;
        
            public function __construct($name){
                
                $this->name=$name;
            }
            
            //统计人数
            public function addPlay(){
                //在类中使用静态变量。在类中有下面2中方式访问静态变量
                //self::$静态变量名和类名::$静态变量名
                //self::$allPlay+=1;
                Child::$allPlay+=1;
                echo $this->name."加入游戏.<br/>";
    
            }
        }
    
        $p1=new Child("lily");
        $p1->addPlay();
        $p2=new Child("lucy");
        $p2->addPlay();
        $p3=new Child("kucy");
        $p3->addPlay();
        $p4=new Child("uucy");
        $p4->addPlay();
    
        //在类外只有一种方式访问静态变量:类名::$静态变量名
        echo Child::$allPlay;
    ?>
  • 相关阅读:
    51nod1363-最小公倍数之和
    [模板] 数论题的一些经验
    WC2019游记 && 课件
    (伪)WC2019题解
    [模板] 后缀自动机&&后缀树
    [模板] 二分图博弈 && BZOJ2463:[中山市选2009]谁能赢呢?
    界面修改日志
    [模板] dp套dp && bzoj5336: [TJOI2018]party
    BZOJ1025:[SCOI2009]游戏
    [模板] BSGS/扩展BSGS
  • 原文地址:https://www.cnblogs.com/pwm5712/p/2975588.html
Copyright © 2011-2022 走看看