如何正确使用PHP的runkit扩展?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1519个文字,预计阅读时间需要7分钟。
目录+ 动态修改常量+ 安装+ 查看全局变量键+ 方法相关操作+ 类方法相关操作+ 总结+ 动态修改常量 define('A', 'TestA'); runkit_constant_redefine('A', 'NewTestA'); echo $A; // 输出:NewTestA,证明动态修改成功
目录
- 动态修改常量
- 安装
- 查看超全局变量键
- 方法相关操作
- 类方法相关操作
- 总结
动态修改常量
define('A', 'TestA'); runkit_constant_redefine('A', 'NewTestA'); echo A; // NewTestA
是不是很神奇。这个 runkit 扩展就是在运行时可以让我们来动态的修改一些常量、方法体及类的功能扩展。当然,从系统安全的角度来来,这个扩展并不是很推荐。因为本身常量的含义就是不变的量,本身就不应该修改的。同理,在运行时动态的改变函数体或者类定义的内容都是会有可能影响到其它调用到这些函数或类的代码,所以,这个扩展是一个危险的扩展。
除了动态地修改常量外,我们还可以使用 runkit_constant_add() 、 runkit_constant_remove() 函数来动态地增加或者删除常量。
安装
runkit 扩展的安装是需要在 github 下载然后进行正常的扩展编译即可,pecl 下载的已经过时了。
本文共计1519个文字,预计阅读时间需要7分钟。
目录+ 动态修改常量+ 安装+ 查看全局变量键+ 方法相关操作+ 类方法相关操作+ 总结+ 动态修改常量 define('A', 'TestA'); runkit_constant_redefine('A', 'NewTestA'); echo $A; // 输出:NewTestA,证明动态修改成功
目录
- 动态修改常量
- 安装
- 查看超全局变量键
- 方法相关操作
- 类方法相关操作
- 总结
动态修改常量
define('A', 'TestA'); runkit_constant_redefine('A', 'NewTestA'); echo A; // NewTestA
是不是很神奇。这个 runkit 扩展就是在运行时可以让我们来动态的修改一些常量、方法体及类的功能扩展。当然,从系统安全的角度来来,这个扩展并不是很推荐。因为本身常量的含义就是不变的量,本身就不应该修改的。同理,在运行时动态的改变函数体或者类定义的内容都是会有可能影响到其它调用到这些函数或类的代码,所以,这个扩展是一个危险的扩展。
除了动态地修改常量外,我们还可以使用 runkit_constant_add() 、 runkit_constant_remove() 函数来动态地增加或者删除常量。
安装
runkit 扩展的安装是需要在 github 下载然后进行正常的扩展编译即可,pecl 下载的已经过时了。

