php7 runkit,runkit7扩展

runkit7扩展提供了修改常量,用户定义的函数和用户定义的类的方法。它还提供自定义的超全局变量。

它是一个在脚本在运行的时候能让你几乎随心所欲更改变量、类、方法、函数行为的扩展

可用于编写测试代码(uopz扩展也有类似功能)

该软件包是[»runkit](https://pecl.php.net/package/runkit)软件包的分支,提供PHP 7支持。

[runkit7\_constant\_add](https://www.php.net/manual/en/function.runkit7-constant-add.php)—与define()类似,但也允许在类定义中进行定义

[runkit7\_constant\_redefine](https://www.php.net/manual/en/function.runkit7-constant-redefine.php)—重新定义一个已经定义的常量

[runkit7\_constant\_remove](https://www.php.net/manual/en/function.runkit7-constant-remove.php)—删除/删除一个已经定义的常量

[runkit7\_function\_add](https://www.php.net/manual/en/function.runkit7-function-add.php)—添加一个新函数,类似于create\_function

[runkit7\_function\_copy](https://www.php.net/manual/en/function.runkit7-function-copy.php)—将函数复制到新的函数名称

[runkit7\_function\_redefine](https://www.php.net/manual/en/function.runkit7-function-redefine.php)—用新的实现替换函数定义

[runkit7\_function\_remove](https://www.php.net/manual/en/function.runkit7-function-remove.php)—删除函数定义

[runkit7\_function\_rename](https://www.php.net/manual/en/function.runkit7-function-rename.php)—更改函数的名称

[runkit7\_import](https://www.php.net/manual/en/function.runkit7-import.php)—处理PHP文件导入功能和类定义,并在适当情况下覆盖

[runkit7\_method\_add](https://www.php.net/manual/en/function.runkit7-method-add.php)—动态地将新方法添加到给定的类

[runkit7\_method\_copy](https://www.php.net/manual/en/function.runkit7-method-copy.php)—将方法从类复制到另一个

[runkit7\_method\_redefine](https://www.php.net/manual/en/function.runkit7-method-redefine.php)—动态更改给定方法的代码

[runkit7\_method\_remove](https://www.php.net/manual/en/function.runkit7-method-remove.php)—动态删除给定的方法

[runkit7\_method\_rename-](https://www.php.net/manual/en/function.runkit7-method-rename.php)动态更改给定方法的名称

[runkit7\_object\_id](https://www.php.net/manual/en/function.runkit7-object-id.php)—返回给定对象的整数对象句柄

[runkit7\_superglobals](https://www.php.net/manual/en/function.runkit7-superglobals.php)—返回已注册超全局变量的数字索引数组

[runkit7\_zval\_inspect](https://www.php.net/manual/en/function.runkit7-zval-inspect.php)—返回有关传入值的信息,包括数据类型,引用计数等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
runkit扩展库是pecl的php扩展的一部分。 runkit提供了一套函数,能让你动态的修改任意类和函数的定义。根据php提供的反射机制,得到所有用户定义的类和函数,你可以把他们重命名然后再用原来的函数名/方法名重新添加一个方法/函数,重新添加的函数的函数体,你可以任意定义---用字串儿,当你的php脚本开始执行时,你要最先 调用你设计的这个“钩子”,把所有的类的方法或函数都"钩"一遍,这样,不管是哪个方法在执行的时候,都会执行到你提供的切入点上的代码. 不过,在使用runkit的时候,还遇到一个问题:就是大小写的问题,起初,在“钩”方法的时候,有的方法带有大写字母,通过反射得到的方法名 也是区分大小写的,但是,应该在php解析执行函数的时候,还是把所有方法名或函数名都转换成了小写,这样,在用runkit提供的动态添加方法的函数添 加方法时,也忠实方法原来的命名,带着大写字母就直接添进去了,结果,再调用被钩的方法的时候,报错,死活也找不着原来的那个方法了,原因应该就 是,php在解析执行类、方法、函数时,应该都是按小写形式来定位的方法和函数的,而用runkit直接添加进去的带有大写字母的函数,自然就会找不到, 所以,在用runkit添加方法的时候,要把方法名都转换成小写,这样php就可以找到这个方法了,函数应该也是同样的. 示例代码: php.ini:runkit.superglobal=foo,bartest.php:function testme() {  echo "Foo is $foo\n";  echo "Bar is $bar\n";  echo "Baz is $baz\n";}$foo = 1;$bar = 2;$baz = 3;testme();输出:Foo is 1Bar is 2Baz is兼容性: PHP 4.2 or greater 标签:Runkit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值