Heim >Backend-Entwicklung >PHP-Tutorial >PHP面向对象编程之静态变量的简单例子

PHP面向对象编程之静态变量的简单例子

WBOY
WBOYOriginal
2016-07-25 09:01:00871Durchsuche
为大家介绍一个php面向对象编程中静态变量的例子,有需要的朋友,可以参考下。

到于什么是php 面向对象的静态变量,在以前的php 教程中介绍的很多了,大家可以回顾一下。

来看今天的问题,有一群朋友在玩捉迷藏游戏,不时有新的小朋友加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决。

有二种方法可以解决这个问题:使用全局变量和静态变量。

<?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;
    //by bbs.it-home.org
*/
  //第二在类中 使用静态变量
    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;
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn