PHP 魔术方法讲解
PHP 魔术方法讲解 魔术方法(Magic Methods)是 PHP 中以双下划线 __ 开头的特殊方法,它们在特定条件下由 PHP 自动调用,无需手动触发。掌握它们的触发时机和参数传递机制,是理解 PHP 面向对象和反序列化漏洞的基础。 总览:魔术方法触发条件速查 魔术方法 触发条件 参数 __construct() new 实例化对象时 构造参数 __destruct() 对象被销毁时(脚本结束或无引用) 无 __sleep() serialize() 序列化时 无,需返回数组 __wakeup() unserialize() 反序列化时 无 __toString() 对象被当作字符串使用时(echo/print 等) 无,需返回字符串 __invoke() 对象被当作函数调用时 调用参数 __clone() clone 克隆对象时 无 __call() 调用不存在的方法时 ($方法名, $参数数组) __callStatic() 静态调用不存在的方法时 ($方法名, $参数数组) __get() 访问不存在的属性...
ALGraph 邻接表图结构 —— C 语言实现与命名详解
ALGraph 邻接表图结构 —— C 语言实现与命名详解图(Graph)是数据结构中的重要一员,而邻接表(Adjacency List) 是最常用的图存储方式之一。相比邻接矩阵,它在稀疏图场景下更省空间,插入和遍历也更灵活。 本文通过一个完整的 C 语言实现,结合命名拆解和 ASCII 图解,帮助读者彻底搞懂 ALGraph 的设计思路。 整体结构下图展示了一个 3 顶点 3 条边的无向图在内存中的布局: 123456789101112131415161718192021222324252627282930313233=================================================================================== [ ALGraph 图的整体结构 ]=================================================================================== ├─ vexnum: 3 (记录当...
Hermes Agent 完全配置手册
来源:Hermes 官方文档、CSDN、腾讯云开发者社区、Hermes 中文社区 📎 官方社区安装配置文档 — 遇到问题先查这里 安装与更新123456789101112131415# macOS / Linux 一键安装curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash# 国内加速镜像curl -fsSL https://res1.hermesagent.org.cn/install.sh | bash# 安装后重载 shellsource ~/.zshrc# 验证hermes --versionhermes doctor # 检查依赖和配置是否完整# 更新hermes update 安装后核心目录: 1234567~/.hermes/├── config.yaml # 全局配置主文件├── .env # API Key 等敏感凭证├── skill...
git 基本命令速查
查看全局配置12345678# 配置全局用户名git config --global user.name "你的用户名"# 配置全局邮箱git config --global user.email "你的邮箱地址"# 查看当前全局配置git config --list 配置 SSH 密钥连接 GitHub使用 SSH 连接可以免去每次推送代码时输入密码的麻烦。 生成本地 SSH 密钥对: 1ssh-keygen -t ed25519 -C "your_email@example.com" 按三下回车(保持默认路径、不设置密钥密码)即可生成。 查看并复制公钥内容: 12345# macOS / Linux 查看命令cat ~/.ssh/id_ed25519.pub# Windows (Git Bash) 查看命令cat ~/.ssh/id_ed25519.pub 复制输出的全部内容(以 ssh-ed25519 开头,你的邮箱结尾)。 将公钥添加到 GitHub: 登录 GitHub -> 点击右上角头像 -&...
vivado安装闪退问题解决
在数电课程实验环境搭建需要安装 Vivado,但运行安装包后,程序刚进入安装界面(如下图)就会直接闪退,而且没有任何明确报错信息。 补充说明:安装失败后,Windows 可能会弹出”软件兼容性”相关提示。这个提示大概率只是系统把”异常退出”误判为兼容性问题,并不一定是真正的根因。 如果你在安装 Vivado 时也遇到了“打开安装包后立即闪退”的情况,可以先检查下面这个问题。 排查方法按下 Win + R 打开“运行”,输入 regedit,进入注册表编辑器。 然后在顶部地址栏中输入以下路径: 1计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor 进入后,查看右侧是否存在名为 AutoRun 的项(我这里已经删除了)。 如果它的数值数据是: 1chcp 65001 可以先将这一项删除,然后重新尝试启动 Vivado 安装程序。 如果没有这个项,或者它的内容不是 chcp 65001,那说明你的闪退问题大概率不是由这里引起的,需要继续排查其他原因。 AutoRun 这条注册表项的作用这条配置的含义...
linux suid提权
先看普通文件权限 查看文件当前权限 123ls -l filename-rw-r--r-- 1 username username 138 Mar 28 15:12 test.jwt 下面按字段拆开理解这个输出。 -rw-r--r--:文件类型与权限 第 1 个字符 -:代表这是一个普通文件。 接下来每三个字符为一组,分别代表: 文件所有者(Owner) 文件所属组(Group) 其他所有人(Others) 第 2-4 个字符 rw-:代表**文件所有者(Owner)**的权限。username(用户)拥有可读(r)和可写/修改(w)权限,但不能执行(执行位是 -)。 第 5-7 个字符 r--:代表**文件所属组(Group)**的权限。同属于 username 用户组的其他成员只能读取(r),不能修改。 第 8-10 个字符 r--:代表**其他所有人(Others)**的权限。同样是只能读取(r)。 1:硬链接数 表示有 1 个文件名指向该文件的物理数据块(普通文件通常都是 1)。 username:文件所有者 这个文件的拥有者是用户 us...
