【php反序列化之对象】

  前言:

           学习php反序列化这不得不提到php的面向对象开发,不多废话,进入正题:

什么是对象:

  对象是存储数据和有关如何处理数据的信息的数据类型。是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。

 php对象的基本结构:

<?php
class Nothing{      //定义类

    public $name = 'Tom';   //定义成员属性
    public $age = 100;
    private $money = 10000;

public function __construct(){         //定义成员方法
       echo __CLASS__;  //输出类名
 }
}
$a = new Nothing();   //实体化类
var_dump($a);         // 打印出类


?>

成员属性、方法:

上述代码中name、age、money可以被称作为类中的成员属性。__construct可以被称为是此类中的成员方法。成员变量可以赋值,亦可以再初始化的时候赋值,还可以通过调用构造函数的时候,让构造函数传参赋值。需要注意的是:在进行对象实体化的时候(使用new关键字给对象实体化 ),将自动的调用构造函数方法。


<?php

class haha
{
    public $name = 'Tome';
    private $sex;
    protected $age = 30;


    function __construct()
    {
        echo __CLASS__;
        $this->sex='man';    //使用construct初始化对象属性值;
        $this->name='Jerry'
;

    }
}
$a =new haha();
echo "\n";
echo $a->name;


?>
<?php

class haha
{
    public $name = 'Tom';
    private $sex;
    protected $age = 30;


    function __construct($sex1,$name1)
    {
        echo __CLASS__;
        $this->sex=$sex1;
        $this->name=$name1;

    }
}
$a =new haha('man','Tome');
echo "\n";
echo $a->name;
var_dump($a);


?>

//输出:
haha
Tomeobject(haha)#1 (3)
 {
  ["name"]=>
  string(4) "Tome"
  ["sex":"haha":private]=>
  string(3) "man"
  ["age":protected]=>
  int(30)
}

类中的成员常量定义:

在php中的常量定义的方法一般有两个:一是使用define函数定义,二是使用const关键字定义;但是php类中只能使用cosnt进行常量的定义:

析构函数:

对象被销毁的时候自动调用,在php中,程序在运行结束后,会自动的销毁对象!

<?php

class haha
{
    public $name = 'Tom';
    private $sex;
    protected $age = 30;


    function __construct($sex1,$name1,$age1)
    {
        echo __CLASS__;
        $this->sex=$sex1;
        $this->name=$name1;
        $this->age=$age1;
    }

    public function __destruct(){
        echo __FUNCTION__;

    }
}
$a =new haha('man','Tome',100);
echo "\n";
echo $a->name;
$a->__construct('male','zhangsenxi',1000);
var_dump($a);
#调用析构方法:
$a->__destruct(); //调用方法--不会销毁对象
echo "\n";
unset($a);  //删除对象,释放资源
?>



//输出结果:
 
haha
Tomehahaobject(haha)#1 (3) 
{
  ["name"]=>
  string(10) "zhangsenxi"
  ["sex":"haha":private]=>
  string(4) "male"
  ["age":protected]=>
  int(1000)
}
__destruct   //手动调用一次析构函数
__destruct   //程序结束后会自动调用一次析构函数
 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值