Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP代码中删除var_dump_Php - Fatal编程技术网

从PHP代码中删除var_dump

从PHP代码中删除var_dump,php,Php,我们有一个很大的代码库,并且经常会突然出现一个用于测试且未被删除/注释的var_转储。使用XDebug()有一个混乱的解决方案,但可能有一些巧妙的方法可以在运行时用PHP完成 另外,我不想通过regex修改或搜索代码。我尝试过使用我自己的var\u dump\u v2,但它很快就不再使用了。如果你有一个大型数据库,为什么不使用serialize()或json\u encode()?这将非常有用 但请注意,serialize()将为您提供类似以下内容的单线输出: 's:0:"";s:5:"valu

我们有一个很大的代码库,并且经常会突然出现一个用于测试且未被删除/注释的var_转储。使用XDebug()有一个混乱的解决方案,但可能有一些巧妙的方法可以在运行时用PHP完成


另外,我不想通过regex修改或搜索代码。我尝试过使用我自己的var\u dump\u v2,但它很快就不再使用了。

如果你有一个大型数据库,为什么不使用
serialize()
json\u encode()
?这将非常有用

但请注意,
serialize()
将为您提供类似以下内容的单线输出:

's:0:"";s:5:"value";'
runkit_function_redefine('var_dump', '','');

因此,您需要学习serialize()的剖析才能使用它:

如果您已经安装了PECL,那么实际上有很多方法可以做到这一点。如果在php.ini中将runkit.internal\u override设置为“1”,则可以使runkit能够覆盖PHPs内部函数

要删除var_dump函数,可以使用:

runkit_function_remove('var_dump');
在您的情况下,为了避免出现错误,您可能应该使用以下内容:

's:0:"";s:5:"value";'
runkit_function_redefine('var_dump', '','');
请看下面的图片


您可能还想看一看“”,这是另一个似乎提供了一个新功能的扩展。

您可以使用猴子补丁

只需在文件的第一行定义名称空间,并定义函数var_dump

     <?php
     namespace monkey;
     function var_dump($obj) {}

是否可以使用php.ini中的disable_functions操作来禁用生产服务器上的var_转储?我不确定该设置的结果是什么(即它是否因错误而失败,或是无提示地失败)。文档不太清楚

-参见“禁用功能”

还有一个覆盖功能:

<?php
override_function('var_dump', '$a', 'return 0;');
?>


和,
serialize()
json\u encode()
在大型数据库中使用时速度要快得多:我想你是想在另一个问题上发表这篇文章的,这正是我所寻找的,几乎无法相信它的存在