如何巧妙利用PHP的GC回收机制优化内存管理?

2026-04-06 07:490阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2085个文字,预计阅读时间需要9分钟。

如何巧妙利用PHP的GC回收机制优化内存管理?

目录+前言+简单面包+初步GC+小试牛刀+总结+前言+在前面的面讲魔术方法时,就提到了一个问题,+__destruct()++无论如何都会被触发,+但前提是必须完成程序的开始与结束,+但如果是程序走远了怎么办?

目录
  • 前言
  • 简单铺垫
  • 初识GC
  • 小试牛刀
  • 总结

前言

在前面讲魔术方法时就提到过一个问题,__destruct()无论如何都会被触发,但是前提是必须得完成程序的开始与结束,但是如果程序走了一半,突然报错,那么__destruct()不会触发了,那如果又必须要__destruct()触发又得怎么搞呢?

这里就要提到一个垃圾回收机制---GC回收!!

简单铺垫

先看看这个简单的序列化,一定要先思考再看后面的答案

<?php highlight_file(__FILE__); class errorr{ public $rce; public function __destruct(){ eval($rce); } } $a = $_GET["a"]; unserialize($a); ?>

很简单的一个反序列化,想办法控制$rce这个变量就可以达到命令执行的目的。

阅读全文
标签:利用目录

本文共计2085个文字,预计阅读时间需要9分钟。

如何巧妙利用PHP的GC回收机制优化内存管理?

目录+前言+简单面包+初步GC+小试牛刀+总结+前言+在前面的面讲魔术方法时,就提到了一个问题,+__destruct()++无论如何都会被触发,+但前提是必须完成程序的开始与结束,+但如果是程序走远了怎么办?

目录
  • 前言
  • 简单铺垫
  • 初识GC
  • 小试牛刀
  • 总结

前言

在前面讲魔术方法时就提到过一个问题,__destruct()无论如何都会被触发,但是前提是必须得完成程序的开始与结束,但是如果程序走了一半,突然报错,那么__destruct()不会触发了,那如果又必须要__destruct()触发又得怎么搞呢?

这里就要提到一个垃圾回收机制---GC回收!!

简单铺垫

先看看这个简单的序列化,一定要先思考再看后面的答案

<?php highlight_file(__FILE__); class errorr{ public $rce; public function __destruct(){ eval($rce); } } $a = $_GET["a"]; unserialize($a); ?>

很简单的一个反序列化,想办法控制$rce这个变量就可以达到命令执行的目的。

阅读全文
标签:利用目录