目录
[SWPUCTF 2021 新生赛]ez_unserialize
[SWPUCTF 2022 新生赛]1z_unserialize
[SWPUCTF 2022 新生赛]ez_ez_unserialize
PHP面向对象的基本概念
面向对象
相对于面向过程(是以“整体事件”为中心的编程思想,把解决步骤分析出来再用函数把这些步骤实现)来说,面向对象是一种以“对象”为中心的编程思想,把解决的问题分成各个“对象”。
类的定义
类是定义了一件事物的抽象特点,它将数据的形式以及这些数据上的操作分装在一起。
对象是具有类类型的变量,是对类的实例
内部构成:成员变量(属性)+成员函数(方法)
继承:继承性是子类自动共享父类数据结构和方法的机制,是类之间的一种关系
类与对象
类的结构
类:定义类名、定义成员变量(属性)、定义成员函数(方法)
class Class_Name{ //成员变量声明 //成员函数声明 }
创建一个类:
class hero{ //定义类(类名) var $name ='zs'; //声明函数变量 var $sex; //var为一种修饰符 function jineng($var1){ //声明成员函数(方法) echo $this->name; //使用预定义$this调用成员变量 echo $var1; //成员函数传参$var1可直接调用 } }
实例化和赋值
在上述创建一个类的基础上,添加以下代码
$cyj=new hero();//实例化类hero()为对象cyj $cyj->name='chyj';//参数赋值 $cyj->sex='mam'; $cyj->jineng(var1:'zuofan');//调用函数 print_r($cyj);//打印对象cyj
修饰符
访问权限修饰符:对属性的定义
常用访问权限修饰符
public:公共的,在类的内部、子类中 或者类的外部都可以使用,不受限制
protected:受保护的,在类的内部、子类中可以使用,但不能在类的外部使用
private:私有的,只能在类的内部使用,在类的外部或者子类中都无法使用
在定义前使用,列如
public $name='chyj'
增加子类:
class hero2 extends hero{}
序列化基础知识
序列化作用(了解)
将对象的状态信息转换为可以存储或传输的形式的过程