• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP静态变量和静态方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

PHP静态变量
静态变量(也叫类变量)

静态的变量的基本用法
1.在类中定义静态变量形式:
[访问修饰符] static $变量名;
例;  //public static $nums=0;
2.如何访问静态变量
如果在类中访问  有两种方法    self::$静态变量名  ,  类名::$静态变量名
如果在类外访问: 有一种方法    类名::$静态变量名

例程:
提出一个问题:
说,有一群小孩在玩堆雪人,不时有新的小孩加入,
请问如何知道现在共有多少人在玩?请使用面向
对象的思想,编写程序解决

[php] view plain copy
<?php  
class Child  
{  
    public $name;  
    //这里定义并初始化一个静态变量 $nums  
    public static $nums=0;  
    public static $i=1;  
    //构造函数  
    function __construct($name)  
    {                        
        $this->name=$name;  
    }   
    //静态方法  
    public  function join_game()  
    {  
        //self::$nums 使用静态变量  
        //self::$nums+=1;  或  
        Child::$nums+=1;  
        echo Child::$i.".".$this->name."加入堆雪人游戏!<br>";  
        Child::$i++;  
    }  
}  
//创建三个小孩  
$child1=new Child("李逵");  
$child1->join_game();  
$child2=new Child("张飞");  
$child2->join_game();  
$child3=new Child("唐僧");  
$child3->join_game();  
$child4=new Child("八戒");  
$child4->join_game();  
//看看有多少人参加了游戏  
echo "<br/> 共有--".child::$nums."--个人参加了游戏!";  
?>  

静态方法(又叫类方法)
其形式如下:
[访问修饰符] static  function 方法名(){}
例;  //public static function enter_school($ifree){}
需求: 当我们操作静态变量的时候,我们可以考虑使用静态方法,比如统计所有学生交的学费

在我们编程中,我们往往使用静态方法去操作静态变量.

使用静态方法不需要创建对象,可以直接访问该静态方法

2.如何访问静态方法:
如果在类中访问  有两种方法    self::静态方法名  ,  类名::静态方法名
如果在类外访问: 有两种方法    类名::静态方法名  ,  对象名->类方法名
静态方法的特点
1.静态方法只能操作静态变量
2.静态方法不能操作非静态变量.
这里请注意 : 普通的成员方法,既可以操作非静态变量,也可以操作静态变量 */

<?php  
class student  
{  
    public $name;  
    //这里定义并初始化一个静态变量 $nums  
    public static $free=0;  
    //public static $i=1;  
    //构造函数  
    function __construct($name,$ifree)  
    {                        
        $this->name=$name;  
        echo "<br>";  
        echo $this->name."入学了,要交学费:".$ifree."元<br>";  
    }   
    //静态方法,新生入学,上交学费  
    public static function enter_school($ifree)  
    {  
        self::$free+=$ifree;      
    }  
    //获取学费  
    public static function getfree()  
    {  
        return  self::$free;  
    }     
}  
//静态方法不需要像普通成员方法一样要创建对象才可调用,可在不创建对象的情况下调用静态方法  
//student::enter_school(10000);  
//创建学生对象  
$student1=new student("小明",1000);  
//通过对象名调用静态方法  
$student1->enter_school(1000);  
//通过类名来调用静态方法  
//student::enter_school(1000);  
$student2=new student("小东",200);  
$student2->enter_school(2000);  
$student3=new student("小亮",3000);  
$student3->enter_school(3000);  
  
echo "共收取学费".$student3->getfree()."元!<br>";  
//echo "共收取学费".student::getfree()."元!<br>";  
?>  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP设计模式之:单例模式发布时间:2022-07-10
下一篇:
php获取apk包信息的方法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap