php面向对象编程

本文介绍了PHP中的构造方法及静态变量的使用方法,包括构造方法的定义与调用、静态变量的特点与应用场景等。

构造方法:

 没有返回值, 在创建对象的时候自动调用构造方法
<?php

class person{

    public $name;
    public $age;
    //这是构造方法
    public function __construct(){
    
        echo "我是构造方法";
    
    }

}
$person1=new person();


?>


页面:我是构造方法

php4 中的构造方法,名字和类名一致;
php5中一个类中可以同时有 两种形式的构造方法
__construct()优先调用;
******两种都写是为了考虑兼容的问题,几乎不用php4的方法;

系统会给每个对象分配this代表当前对象;
 对象的方法内调用成员属性 $this->name;

 




那个对象使用到$this 就是哪个对象地址
不能在类外部使用;
构造方法注意:
1.一旦自定义构造方法,默认的会被覆盖
2.一个类只能有一个构造方法
 没有返回值;


析构方法

作用主要是用于,释放资源(如释放数据库的连接,或者销毁某个对象)
(自动调用,在内存中是以栈的形式,即先进后出,先创建的对象,后销毁)

调用条件:
当程序(进程结束)退出时候;
当一个对象成为垃圾对象的时候,该对象的析构方法就会立即被调用;
   垃圾对象:php中,没有任何变量在引用它;



静态变量/全局变量
所有的对象都共享的一个变量;

全局:
用global 来声明;
<?php
    
    global $global_game;

    $global_game=0;
    class child{
    
        public $name;
        
        function __construct($name){
        
            $this->name=$name;
        
        }

        public function join_game(){
            
            global $global_game;
            $global_game+=1;
            echo $this->name."加入游戏<br/>";
            
        
        }
    
    }
    $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 "有".$global_game;
?>

静态变量;
与全局变量在本质上没有区别,静态变量被封装在类中;访问要用类来访问;

在类的内部使用 self::$sum或者类名::$sum
在类的外部使用 类名::$sum

静态变量访问 并不需要类实例化;

语法:[访问修饰符]static $变量名;

<?php
    

    class child{
    
        public $name;
        //这里定义并初始化了一个静态变量 $num
        public static  $num=0;
        
        function __construct($name){
        
            $this->name=$name;
        
        }

        public function join_game(){

            //self::$num使用静态变量
            self::$num+=1;
            

            echo $this->name."加入游戏<br/>";
            
        
        }
    
    }
    $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 "有这些".child::$num;
?>


静态变量在内存中的存在形式:
 



静态方法:

也叫类方法,类方法不能访问非静态属性
在类内部:self::类方法名 或者 类名::类方法名
在类外部:类名::类方法名  或者 对象名->类方法名

需求:当我们操作静态变量的时候,我们可以考虑使用静态方法
语法:访问修饰符 static function 类名(){}

特点:1.静态方法去操作静态变量
      2.静态方法不能操作非静态变量

注意:普通的成员方法,既可以操作非静态变量也可以操作静态变量;

转载于:https://www.cnblogs.com/phprj/archive/2012/12/11/2812240.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值