Разница между var_dump, var_export и print_r

В чем разница между var_dump , var_export и print_r ?

var_dump предназначен для отладки. var_dump всегда печатает результат.

 // var_dump(array('', false, 42, array('42'))); array(4) { [0]=> string(0) "" [1]=> bool(false) [2]=> int(42) [3]=> array(1) {[0]=>string(2) "42")} } 

print_r также предназначен для отладки, но не включает тип участника. Рекомендуется использовать, если вы знаете типы элементов в своем массиве, но в противном случае может вводить в заблуждение. print_r по умолчанию печатает результат, но позволяет вместо него возвращать как строку, используя необязательный параметр $return .

 Array ( [0] => [1] => [2] => 42 [3] => Array ([0] => 42) ) 

var_export печатает действительный php-код. Полезно, если вы рассчитали некоторые значения и хотите, чтобы результаты были константами в другом скрипте. Обратите внимание, что var_export не может обрабатывать ссылочные циклы / рекурсивные массивы, тогда как var_dump и print_r проверяют их. var_export по умолчанию печатает результат, но позволяет вместо него возвращать как строку, используя необязательный параметр $return .

 array ( 0 => '', 2 => false, 2 => 42, 3 => array (0 => '42',), ) 

Лично я считаю, что var_export – лучший компромисс лаконичной и точной.

var_dump и var_export относятся как это (из руководства )

var_export () получает структурированную информацию об данной переменной. Он похож на var_dump () с одним исключением: возвращаемое представление является допустимым кодом PHP.

Они отличаются от print_r что var_dump экспортирует больше информации, например, тип данных и размер элементов.