print_r - var_dump php español
¿Cuál es la diferencia entre echo, print e print_r en PHP? (10)
** Echocan acepta expresiones múltiples mientras que la impresión no puede. La función Print_r () PHP se usa para devolver una matriz en una forma legible por humanos. Simplemente está escrito como
![Print_r ($your_array)][1]
Uso echo
e print_r
mucho, y casi nunca uso print
.
Siento que echo
es una macro e print_r
es un alias de var_dump
.
Pero esa no es la forma estándar de explicar las diferencias.
Solo para agregar a la respuesta de John , echo
debe ser el único que use para imprimir contenido en la página.
print
es un poco más lenta. var_dump()
e print_r()
solo deben usarse para depurar.
También vale la pena mencionar que print_r()
y var_dump()
harán eco por defecto, agregan un segundo argumento a print_r()
al menos que se evalúa como verdadero para devolverlo, por ejemplo print_r($array, TRUE)
.
La diferencia entre hacer eco y regresar son:
- echo: Imprimirá inmediatamente el valor en la salida.
- return: Devolverá la salida de la función como una cadena. Útil para el registro, etc.
ambos son construcciones de lenguaje. el eco vuelve a quedar vacío y la impresión regresa 1. El eco se considera un poco más rápido que la impresión.
echo: echo es una construcción de lenguaje donde no se requiere el uso de paréntesis y puede tomar cualquier cantidad de parámetros y devolver el vacío.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print: es una construcción de lenguaje donde no se requiere el uso de paréntesis solo toma un parámetro y regresa
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: Es una función que requiere al menos una cadena y un estilo de formato, y devuelve la longitud de la cadena de salida.
int printf($string,$s);
$s= "Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;
Output : Hello Shailesh how are you?
27
echo returns void so its execution is faster than print and printf
print_r () puede imprimir el valor pero también si se pasa el segundo parámetro de indicador y es VERDADERO - devolverá el resultado impreso como una cadena y nada se enviará a la salida estándar. Acerca de var_dump. Si el depurador XDebug está instalado, los resultados de salida se formatearán de una manera mucho más legible y comprensible.
print
y echo
son más o menos lo mismo; ambos son construcciones de lenguaje que muestran cadenas. Las diferencias son sutiles: la print
tiene un valor de retorno de 1, por lo que se puede usar en expresiones mientras que echo
tiene un tipo de retorno de void
; echo
puede tomar múltiples parámetros, aunque tal uso es raro; echo
es ligeramente más rápido que print
. (Personalmente, siempre uso echo
, nunca print
).
var_dump
imprime un volcado detallado de una variable, incluyendo su tipo y el tipo de cualquier subtema (si es una matriz o un objeto). print_r
imprime una variable en una forma más legible para el ser humano: las cadenas no se citan, se omite la información del tipo, no se dan los tamaños de la matriz, etc.
var_dump
suele ser más útil que print_r
al depurar, según mi experiencia. Es particularmente útil cuando no sabes exactamente qué valores / tipos tienes en tus variables. Considere este programa de prueba:
$values = array(0, 0.0, false, '''');
var_dump($values);
print_r ($values);
Con print_r
no puede distinguir entre 0
y 0.0
, o false
y ''''
:
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
print_r()
se utiliza para imprimir la matriz en formato legible para humanos.
Echo :
Es declaración no una función Sin valor de retorno
No se requiere el paréntesis
No imprimir matriz
Impresión
Es una función real
Tipo de devolución 1
Requerido el paréntesis
No imprimir matriz
Print_r
Imprimir en formato legible para humanos
Cadena no en Citas
Información no detallada de tipo variable y todo
var_dump
Toda la información de volcado de variables como tipo de elemento y elemento secundario
eco
- Emite una o más cadenas separadas por comas
Sin valor de retorno
por ejemplo,
echo "String 1", "String 2"
impresión
- Emite solo una cadena
Devuelve
1
, por lo que se puede usar en una expresiónpor ejemplo,
print "Hello"
o,
if ($expr && print "foo")
print_r ()
- Da como resultado una representación legible por humanos de cualquier valor
- Acepta no solo cadenas, sino otros tipos, incluidas matrices y objetos, formateándolos para que sean legibles
- Útil cuando se depura
- Puede devolver su salida como un valor de retorno (en lugar de eco) si se proporciona el segundo argumento opcional
var_dump ()
- Da como resultado una representación legible por humanos de uno o más valores separados por comas
- Acepta no solo cadenas, sino otros tipos, incluidas matrices y objetos, formateándolos para que sean legibles
- Utiliza un formato de salida diferente para
print_r()
, por ejemplo, también imprime el tipo de valores - Útil cuando se depura
- Sin valor de retorno
var_export ()
- Da como resultado una representación legible por humanos y PHP ejecutable de cualquier valor
- Acepta no solo cadenas, sino otros tipos, incluidas matrices y objetos, formateándolos para que sean legibles
- Utiliza un formato de salida diferente para
print_r()
yvar_dump()
- ¡la salida resultante es un código PHP válido! - Útil cuando se depura
- Puede devolver su salida como un valor de retorno (en lugar de eco) si se proporciona el segundo argumento opcional
Notas:
- Aunque la
print
se puede usar en una expresión, recomiendo que la gente evite hacerlo, porque es mala para la legibilidad del código (y porque es poco probable que alguna vez sea útil). Las reglas de precedencia cuando interactúa con otros operadores también pueden ser confusas. Debido a esto, personalmente nunca tengo una razón para usarlo en lugar deecho
. - Mientras que
echo
eprint
son construcciones de lenguaje,print_r()
yvar_dump()
/var_export()
son funciones regulares. No necesita paréntesis para adjuntar los argumentos paraecho
oprint
(y si los usa, se tratarán como lo harían en una expresión). - Si bien
var_export()
devuelve un código PHP válido que permite leer los valores más tarde, confiar en esto para el código de producción puede facilitar la introducción de vulnerabilidades de seguridad debido a la necesidad de usareval()
. Sería mejor usar un formato como JSON en su lugar para almacenar y leer valores. La velocidad será comparable.
echo
No tener tipo de devolución
print
Tener tipo de devolución
print_r()
Salidas con formato,