2016-03-21 2 views
0

Интересно, можно ли заменить var_dump на некоторую определенную пользователем функцию. Я знаю, что вы можете использовать любые функции демпинга различных модулей или некоторые обертки. Но я хочу добиться того, что любой в моем проекте, который использует «var_dump», получает мою новую функцию, не «зная» ее и без необходимости использовать другой синтаксис. Просто переопределите функцию. ThanksЗаменить var_dump с помощью настраиваемой функции в PHP

+0

Вам нужно изменить исходный PHP для достижения того, что вы хотите. :-) – Ikari

+0

Я всегда записываю функцию '' 'function vd ($ var) {echo '

'; var_dump($var); echo '
'; } '' '. Я предлагаю вам это. –

ответ

1

PHP не поддерживает повторное объявление функций AFAIK. Однако есть небольшой трюк, который вы можете сделать на основе конкретного случая.

Допустим, этот код в файле:

var_dump($a); 
var_dump($b); 
var_dump($c); 

Вы можете просто обернуть это в пространство имен следующим образом:

namespace OverridingGlobalNamespace { 
    function var_dump($_) { 
      echo "My custom var_dump"; 
    } 

    var_dump($a); //Will use namespace function instead of PHP function 
    var_dump($b); 
    var_dump($c); 
} 
+0

Привет, это кажется интересным решением, я должен проверить, действительно ли это работает;) – Asped

+0

, как вы говорите - это конкретный случай, я до сих пор не могу применить его ко всем вызовам var_dump. Поэтому я думаю, что это невозможно :) – Asped

+1

@Asped Я не утверждаю, что это идеальное решение или даже хорошая идея. Я просто считаю, что это интересная причуда языка. В идеале вы бы не хотели использовать var_dump, но свою собственную функцию-оболочку, которая делает то, что вы хотите (и которую вы можете определить по-разному в средах отладки и производства). – apokryfos

Смежные вопросы