php反序列化--前置知识

🎼个人主页:金灰

😎作者简介:一名简单的大一学生;易编橙·终身成长社群的嘉宾.✨

专注网络空间安全服务,期待与您的交流分享~

感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️

🍊易编橙·终身成长社群🍊 : http://t.csdnimg.cn/iSLaP 期待您的加入~

免责声明:本文仅做分享...

目录

类与对象

属性的权限-划分:

类的继承:

例:

方法的属性修饰符:

方法的修饰:

static修饰

final修饰

类的分类:

1 普通类 没有任何修饰

2 抽象类

3 接口 interface

4 trait

5 匿名类


类与对象

//用户类--属性和方法的集合
class  user{public $username;  //共有属性private $password; //私有属性//公共方法public login(){echo $this->password;}//公共方法public logout(){}}
// ------------
class  user{public $username;  //共有属性private $password; //私有属性protected $userType;public static $platform="ctf";//公共方法public login(){echo $this->password;}//公共方法public logout(){}}

类的定义,我们可以认为是设计图.

类的对象-
//实例化一个类 --> 从设计图转换为一个可以用的变量,变量类型不再是字符串或者数字,而是一个对象.
$u = new user(); 每个对象中,静态属性值,不变
$p = new user();$u->username;
$p->username;
//外部不能直接引用password		 (private $password; //私有属性

类和对象的关系,类似于  设计图(蓝图) 与 生成出的产品 之间的关系.
一个设计图(类)-->多个产品(对象)

属性的权限-划分:

1 public 权限 外部可以通过箭头访问到
2 private 权限 内部通过 $this->username 访问到
3 protected 权限 表示 自身及其子类 和父类 能够访问

类的继承:

例:

普通用户    vip用户   管理员用户
-->都属于user类  
//通过extends直接继承(获得)类的内容
class normalUser extends user{public $score;public function play(){echo  $this->userType;}
}
$n = new normalUser();----------
class vipUser extends user{public $score;
}----------
class adminUser extends user{public $score;
}

方法的属性修饰符:

public 
private
protected

方法的修饰:

静态属性   static   //一旦修饰为静态,就写死了,不能改. --修饰方法的话,直接通过类名调用.
final属性   final   //修饰方法时,父类的方法>子类的方法. 

static修饰

 


 

final修饰

class  user{public $username;  //共有属性private $password; //私有属性protected $userType;public static $platform="ctf";public function __construct($username,$password){  //类的构造方法$this->username = $username;$this->password = $password;}//公共方法public final function login(){echo $this->password;}//公共方法public function logout(){}}
class normalUser extends user{public $score;public function play(){echo  $this->userType;}
}
public function login(){echo "i am normalUser";
}
//类的静态方法
public static function go(){
echo "gogoog!";
}
}
$n = new normalUser("admin","admin666");
$n->login();$n = new normalUser("admin","admin666");
$n->login();


类的分类:

1 普通类 没有任何修饰

class user{public function login(){}public function logout(){}
}

2 抽象类

// 类里面有一个abstract方法就是抽象类.(只定义无内容)
abstract class user{  //对类也进行标识.public function login(){}public function logout(){}abstract function play();
}类里面的方法,有些是有详细的实现,有些就只有个方法名字,没具体实现.
抽象类 不能被 new 也就是不能被直接 实例化对象.
-> 在父子类中,父类用的抽象方法,子类就必须要声明其方法的实现,
--不想实现的话,子类就把自己也变成抽象类(抽象方法)

3 接口 interface

(所有方法都是抽象方法时就不需要写abstract )
接口-->为了实现多继承效果class xxx extends user implements 接口   // 可以实现多个接口interface service1(){}
interface service2(){}class xxx extends user implements service1,service2{}

4 trait

(php5.4之后)
可以认为是代码段 ,方便复制粘贴
// 用于普遍操作,
//一般不涉及类的属性的读取操作--不使用属性
trait math{function add(){}function mub(){}}    class xxx(){use math; 
}    

5 匿名类

不打算用/用1次..
//一次性匿名类的例子(类名都不配拥有,给你个属性直接调用)
$v->play(new class{public $username="我是匿名类";
});$a = new class{public $name="1";public $passwd="大";
}
//类似于 data伪协议.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3266110.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

文件共享功能无法使用提示错误代码0x80004005【笔记】

环境情况: 其他电脑可以正常访问共享端,但有一台电脑访问提示错误代码0x80004005。 处理检查: 搜索里输入“启用或关闭Windows功能”按回车键,在“启用或关闭Windows功能”里将“SMB 1.0/CIFS文件共享支持”勾选后(故…

不同行情下算法的具体使用!

上一篇我们说到了不同公司算法交易的区分,有朋友提出了不同的行情下的算法交易应该怎么使用,小编今天就带大家了解下!当然具体实际状况百出,这种可以实际为准(韭菜修养全拼实际探讨交流)! 我们在…

qt做的分页控件

介绍 qt做的分页控件 如何使用 创建 Pagination必须基于一个QWidget创建,否则会引发错误。 Pagination* pa new Pagination(QWidget*);设置总页数 Pagination需要设置一个总的页数,来初始化页码。 pa->SetTotalItem(count);设置可选的每页数量…

Java 每日一题: for 与 foreach 的区别 ?

for 循环:是最基本的循环结构,可以通过初始化语句、循环条件和迭代语句来控制循环的执行。 foreach 循环(也称为增强型 for 循环):用于遍历集合或数组中的元素,简化了遍历过程,没有显式地控制索…

[STM32]HAL库实现自己的BootLoader-BootLoader与OTA-STM32CUBEMX

目录 一、前言 二、BootLoader 三、BootLoader的实现 四、APP程序 五、效果展示 六、拓展 一、前言 听到BootLoader大家一定很熟悉,在很多常见的系统中都会存在BootLoader。本文将介绍BootLoader的含义和简易实现,建议大家学习前掌握些原理基础。 …

全链路追踪 性能监控,GO 应用可观测全面升级

作者:古琦 01 介绍 随着 Kubernetes 和容器化技术的普及,Go 语言不仅在云原生基础组件领域广泛应用,也在各类业务场景中占据了重要地位。如今,越来越多的新兴业务选择 Golang 作为首选编程语言。得益于丰富的 RPC 框架&#xff…

编程类精品GPTs

文章目录 编程类精品GPTs前言种类ChatGPT - GrimoireProfessional-coder-auto-programming 总结 编程类精品GPTs 前言 代码类的AI, 主要看以下要点: 面对含糊不清的需求是否能引导出完整的需求面对完整的需求是否能分步编写代码完成需求编写的代码是否具有可读性和可扩展性 …

力扣算法题:矩阵(玄幻不变量法),链表(虚拟头节点,递归法)

20240725 一、矩阵54.螺旋矩阵(循环不变量) 二、链表1 移除链表元素1.1 原链表删除元素:1.2 虚拟头节点(!!!) 2. 设计链表206. 反转链表(双向指针和递归)双指针递归 交换链表中的元素虚拟头节点法递归法 删…

如何解决 Nginx 与边缘计算节点的集成问题?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 如何解决 Nginx 与边缘计算节点的集成问题?一、理解集成的需求和目标二、解决网络配置问题三、优化 Nginx 配置四、处理安全与认证问题五、监控与调试…

STM32是使用的内部时钟还是外部时钟

STM32是使用的内部时钟还是外部时钟,经常会有人问这个问题。 1、先了解时钟树,见下图: 2、在MDK中,使用的是HSEPLL作为SYSCLK,因此需要对时钟配置寄存器(RCC_CFGR)进行配置,寄存器内…

Jacoco 单元测试配置

前言 编写单元测试是开发健壮程序的有效途径,单元测试写的好不好可以从多个指标考量,其中一个就是单元测试的覆盖率。单元测试覆盖率可以看到我们的单元测试覆盖了多少代码行、类、分支等。查看单元测试覆盖率可以使用一些工具帮助我们计算,…

在IDEA中切换分支没有反应

说明:记录一次在IDEA中切换分支没有反应的情况,新建一个分支后,准备暂存代码,切换到其他分支去,发现怎么切都没有反应,也没有切过去; 解决:首先,我想到是不是当前新分支…

如何解决 Nginx 与无服务器架构的集成问题?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 如何解决 Nginx 与无服务器架构的集成问题? 如何解决 Nginx 与无服务器架构的集成问题? 在当今的云计算时代,无服务器架构因…

机器学习驱动的智能化电池管理技术与应用

目录 主要内容 电池管理技术概述 电池的工作原理与关键性能指标 电池管理系统的核心功能 SOC估计 SOH估计 寿命预测 故障诊断 人工智能机器学习 基础 人工智能的发展 机器学习的关键概念 机器学习在电池管理中的应用案例介绍 人工智能在电池荷电状态估计中的…

AttributeError: ‘list‘ object has no attribute ‘text‘

AttributeError: ‘list‘ object has no attribute ‘text‘ 目录 AttributeError: ‘list‘ object has no attribute ‘text‘ 【常见模块错误】 【解决方案】 示例代码 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英…

谷粒商城实战笔记-63-商品服务-API-品牌管理-OSS获取服务端签名

文章目录 一,创建第三方服务模块thrid-party1,创建一个名为gulimall-third-party的模块2,nacos上创建third-party命名空间,用来管理这个服务的所有配置3,配置pom文件4,配置文件5,单元测试6&…

模型剪枝中有哪些经验|mobile-yolov5-pruning-distillation项目中剪枝知识分析

项目地址:https://github.com/Syencil/mobile-yolov5-pruning-distillation 项目时间:2022年 mobile-yolov5-pruning-distillation是一个以yolov5改进为主的开源项目,主要包含3中改进方向:更改backbone、模型剪枝、知识蒸馏。这里…

路由表与IP数据报的转发

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、相关知识 1、路由类型 路由表中有3类路由:直连路由、静态路由、动态路由 直连路由:一般指去往路由器接口直接连接网络的…

JAW:一款针对客户端JavaScript的图形化安全分析框架

关于JAW JAW是一款针对客户端JavaScript的图形化安全分析框架,该工具基于esprima解析器和EsTree SpiderMonkey Spec实现其功能,广大研究人员可以使用该工具分析Web应用程序和基于JavaScript的客户端程序的安全性。 工具特性 1、动态可扩展的框架&#x…