entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Diferencias entre echo y print_r

Tengo una duda respecto ala impresio en pantalla si utilizar echo o print_r en PHP tengo un codigo que por una condicion break me detiene y no muestra todos los numeros que estan en un arreglo, pero imprimiendolo con print_r si los muestra.

En este ejemplño imprimiendolo con echo encuentra el numero que no es par y se detiene y con print_r si muestra todo el array

    <?php
    $pares = array(56,48,96,62,76,30,12,14,26,84,53,10,18,56,58,22,28,68);

    foreach ($pares as $indice => $valor) {
        if (fmod($valor, 2) != 0) {
            $pares[$indice] = $valor * 2;
            break;/*Aqui solo utilizamos un break por que sabemos que solo se analizara un digito, y en el momento en que lo encuentre hace para operacion y para, si tuvieramos que recorren un array mas largo pues eliminamos el break, para que analice todas las coincidencias*/
        }
        echo $valor.'<br>'; /*Este echo no se puede utilizar para ver un arreglo, relativamente su se puede, pero solo para ver los primeros 0 a 9 valores deahi ya no muestra completo el array, por ello se utiliza foreach*/
    }
    echo '<br>';
    print_r($pares);
?>

En este ejemplo le quito la condicion y muestra todo

<?php
    $pares = array(56,48,96,62,76,30,12,14,26,84,53,10,18,56,58,22,28,68);

    foreach ($pares as $indice => $valor) {
        echo $valor.'<br>'; /*Se puede acceder a este foreach mediante echo ya que no se utiliza otra sentencia*/
    }
    echo '<br>';
    print_r($pares);
?>

Mi duda es si en el primer ejmplo se detiene el echo por el break y la segunda pregunta es que se recomienda para imprimir matrices echo o print_r

muchas gracias :)

1 Respuesta

1voto

white Puntos75880

En tu primer ejemplo la expresión echo deja de imprimir por que finalizas el loop en la condición (break)
si remueves la expresion break el echo seguira imprimiendo sin problema.

echo no imprime un arreglo como mencionas, sino una cadena o varias separadas por comas o una cadena concatenada por puntos, echo no retorna ningun valor, en cambio print devuelve 1.

En tu ejemplo estas imprimiendo cada elemento del arreglo con echo, no estas imprimiendo el arreglo como dices.

print_r es útil al depurar tu código, esta función acepta objetos, cadenas, arreglos, etc. e imprime algo mas legible, puede retornar una cadena si defines el segundo parametro, con print_r podrías no ver la diferencia entre 0, false, y una cadena vacía, para ello podrias usar var_dump que es similar a print_r pero este da mas detalles sobre el tipo de variables (bool, string, integer, etc)

0voto

versce123mx comentado

Ok muchas gracias white, ya entiendo ahora un pco mejor la diferencia de echo y print_r y sus diferencias. muchas gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta