gpt4 book ai didi

php - 全局覆盖 var_dump?

转载 作者:可可西里 更新时间:2023-11-01 00:44:53 27 4
gpt4 key购买 nike

我不喜欢 var_dump 打印对象的方式。我想用这个函数覆盖它:

function var_dump($object, $die = true) {
print '<pre>';
print_r($object);
if ($die) die();
}

我知道如何在我的应用程序中覆盖它,但有没有办法在 PHP 配置级别为所有站点全局覆盖它?

最佳答案

您目前无法在 PHP 中(通过“好方法”)做到这一点。还有更多 - 你不应该。var_dump() 正在按预期进行:plain 输出,仅此而已。如果您想更改它,那么根据定义您需要一些用户定义的行为。因此:

  • 创建您自己的函数。那就是你现在所拥有的。用户定义的函数用于用户定义的行为。
  • 否则,如果您出于某种原因想要使用 var_dump() name 来完成此操作,请使用 namespace,例如:

    namespace Utils;
    function var_dump($var, $exit=true, $return=true)
    {
    $result = sprintf('<pre>%s</pre>', print_r($var, true));
    if($exit)
    {
    echo $result;
    exit;
    }
    if($return)
    {
    return $result;
    }
    echo $result;
    }

    所以用法看起来像:

    $obj = new StdClass();
    $str = \Utils\var_dump($obj, false);
    //do domething with $str
    echo $str; //or use second false
  • 最坏情况:runkit_function_redefine()请记住,这是邪恶的。你不应该那样做,因为重新定义违背了功能的定义和定义的原因。这是一种全局副作用,您应该避免这种行为。

关于php - 全局覆盖 var_dump?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22090122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com