PHP                
            Salida del valor de una variable
        
        
            
    Buscar..
Introducción
Para construir un programa PHP dinámico e interactivo, es útil generar variables y sus valores. El lenguaje PHP permite múltiples métodos de salida de valor. Este tema cubre los métodos estándar de impresión de un valor en PHP y dónde se pueden usar estos métodos.
Observaciones
Las variables en PHP vienen en una variedad de tipos. Dependiendo del caso de uso, es posible que desee enviarlos al navegador como HTML renderizado, generarlos para la depuración o enviarlos al terminal (si ejecuta una aplicación a través de la línea de comandos).
A continuación se muestran algunos de los métodos y construcciones de lenguaje más utilizados para generar variables:
-  
echo- Da salida a una o más cadenas -  
print: genera una cadena y devuelve1(siempre) -  
printf: genera una cadena formateada y devuelve la longitud de la cadena generada -  
sprintf- Formatea una cadena y devuelve la cadena formateada -  
print_r- Produce o devuelve el contenido del argumento como una cadena legible para el ser humano -  
var_dump:var_dumpinformación de depuración legible para el ser humano sobre el contenido de los argumentos, incluido su tipo y valor -  
var_export:var_exporto devuelve una representación de cadena de la variable como código PHP válido, que se puede usar para recrear el valor. 
Nota: Cuando se intenta generar un objeto como una cadena, PHP intentará convertirlo en una cadena (llamando a
__toString()- si el objeto tiene tal método). Si no está disponible, un error similar aObject of class [CLASS] could not be converted to string. En este caso, tendrá que inspeccionar el objeto más a fondo, consulte: salida-una-vista-estructurada-de-arreglos-y-objetos .
hacer eco e imprimir
 echo e print son construcciones de lenguaje, no funciones. Esto significa que no requieren paréntesis alrededor del argumento como lo hace una función (aunque uno siempre puede agregar paréntesis alrededor de casi cualquier expresión PHP y, por lo tanto, echo("test") tampoco hará ningún daño). Producen la representación de cadena de una variable, constante o expresión. No se pueden utilizar para imprimir matrices u objetos. 
Asigna la cadena
Joela la variable$name$name = "Joel";Muestra el valor de $ name usando
echo&printecho $name; #> Joel print $name; #> JoelLos paréntesis no son necesarios, pero pueden ser utilizados
echo($name); #> Joel print($name); #> JoelUsando múltiples parámetros (solo
echo)echo $name, "Smith"; #> JoelSmith echo($name, " ", "Smith"); #> Joel Smith
print, a diferencia deecho, es una expresión (devuelve1), y por lo tanto puede usarse en más lugares:print("hey") && print(" ") && print("you"); #> you11Lo anterior es equivalente a:
print ("hey" && (print (" " && print "you"))); #> you11
 Notación abreviada de echo 
 Cuando está fuera de las etiquetas PHP , una notación abreviada de echo está disponible de forma predeterminada, utilizando <?= Para comenzar la salida y ?> Para finalizarla. Por ejemplo: 
<p><?=$variable?></p>    
<p><?= "This is also PHP" ?></p>
  Tenga en cuenta que no hay terminación ; . Esto funciona porque la etiqueta PHP de cierre actúa como el terminador de la declaración única. Por lo tanto, es convencional omitir el punto y coma en esta notación abreviada. 
 Prioridad de print 
 Si bien la print es lenguaje de construcción tiene prioridad como operador. Se ubica entre = += -= *= **= /= .= %= &= and operadores y ha dejado asociación. Ejemplo: 
echo '1' . print '2' + 3; //output 511
 Mismo ejemplo con paréntesis:
echo '1' . print ('2' + 3); //output 511
  Diferencias entre echo e print 
En resumen, hay dos diferencias principales:
-  
printsolo toma un parámetro, mientras que elechopuede tener múltiples parámetros. -  
printdevuelve un valor, por lo que se puede utilizar como una expresión. 
Salida de una vista estructurada de arrays y objetos
 print_r() - Arreglos y objetos de salida para la depuración 
 print_r generará un formato legible por humanos de una matriz u objeto. 
 Puede tener una variable que sea una matriz u objeto. Intentar emitirlo con un echo arrojará el error: 
 Notice: Array to string conversion . En su lugar, puede usar la función print_r para volcar un formato legible por humanos de esta variable. 
Puede pasar verdadero como segundo parámetro para devolver el contenido como una cadena.
$myobject = new stdClass();
$myobject->myvalue = 'Hello World';
$myarray = [ "Hello", "World" ];
$mystring = "Hello World";
$myint = 42;
// Using print_r we can view the data the array holds.
print_r($myobject);
print_r($myarray);
print_r($mystring);
print_r($myint);
 Esto da como resultado lo siguiente:
stdClass Object
(
    [myvalue] => Hello World
)
Array
(
    [0] => Hello
    [1] => World
)
Hello World
42
  Además, la salida de print_r se puede capturar como una cadena, en lugar de simplemente hacer eco. Por ejemplo, el siguiente código $myarray versión formateada de $myarray en una nueva variable: 
$formatted_array = print_r($myarray, true);
 Tenga en cuenta que si está viendo la salida de PHP en un navegador y se interpreta como HTML, los saltos de línea no se mostrarán y la salida será mucho menos legible a menos que haga algo como
echo '<pre>' . print_r($myarray, true) . '</pre>';
 Al abrir el código fuente de una página también se formateará su variable de la misma manera sin el uso de la etiqueta
<pre>.
Alternativamente, puede decirle al navegador que lo que está generando es texto simple y no HTML:
header('Content-Type: text/plain; charset=utf-8');
print_r($myarray);
  var_dump() : genera información de depuración legible para el ser humano sobre el contenido de los argumentos, incluido su tipo y valor 
 La salida es más detallada en comparación con print_r porque también genera el tipo de la variable junto con su valor y otra información como ID de objeto, tamaños de matriz, longitudes de cadena, marcadores de referencia, etc. 
 Puede usar var_dump para generar una versión más detallada para la depuración. 
var_dump($myobject, $myarray, $mystring, $myint);
 La salida es más detallada:
object(stdClass)#12 (1) {
  ["myvalue"]=>
  string(11) "Hello World"
}
array(2) {
  [0]=>
  string(5) "Hello"
  [1]=>
  string(5) "World"
}
string(11) "Hello World"
int(42)
 Nota : Si está utilizando xDebug en su entorno de desarrollo, la salida de var_dump está limitada / truncada de forma predeterminada. Consulte la documentación oficial para obtener más información sobre las opciones para cambiar esto.
 var_export() - Código PHP salida válido 
 var_export() vuelca una representación de PHP analizable del elemento. 
Puede pasar verdadero como segundo parámetro para devolver el contenido a una variable.
var_export($myarray);
var_export($mystring);
var_export($myint);
 La salida es un código PHP válido:
array (
  0 => 'Hello',
  1 => 'World',
)
'Hello World'
42
 Para poner el contenido en una variable, puedes hacer esto:
$array_export = var_export($myarray, true);
$string_export = var_export($mystring, true);
$int_export = var_export($myint, 1); // any `Truthy` value
 Después de eso, puedes mostrarlo así:
printf('$myarray = %s; %s', $array_export, PHP_EOL);
printf('$mystring = %s; %s', $string_export, PHP_EOL);
printf('$myint = %s; %s', $int_export, PHP_EOL);
 Esto producirá la siguiente salida:
$myarray = array (
  0 => 'Hello',
  1 => 'World',
);
$mystring = 'Hello World';
$myint = 42;
        printf vs sprintf
 printf es la salida una cadena con formato utilizando marcadores de posición 
 sprintf devolverá la cadena formateada 
$name = 'Jeff';
// The `%s` tells PHP to expect a string
//            ↓  `%s` is replaced by  ↓
printf("Hello %s, How's it going?", $name);
#> Hello Jeff, How's it going?
// Instead of outputting it directly, place it into a variable ($greeting)
$greeting = sprintf("Hello %s, How's it going?", $name);
echo $greeting;
#> Hello Jeff, How's it going?
 También es posible formatear un número con estas 2 funciones. Esto se puede usar para formatear un valor decimal usado para representar el dinero de modo que siempre tenga 2 dígitos decimales.
$money = 25.2;
printf('%01.2f', $money);
#> 25.20
  Las dos funciones vprintf y vsprintf funcionan como printf y sprintf , pero aceptan una cadena de formato y una matriz de valores, en lugar de variables individuales. 
Concatenación de cuerdas con eco.
 Puede usar la concatenación para unir las cadenas "de extremo a extremo" mientras las emite (con echo o print por ejemplo). 
 Puedes concatenar variables usando a . (punto / punto). 
// String variable
$name = 'Joel';
// Concatenate multiple strings (3 in this example) into one and echo it once done.
//      1. ↓        2. ↓            3. ↓    - Three Individual string items
echo '<p>Hello ' . $name . ', Nice to see you.</p>';
//               ↑       ↑                  - Concatenation Operators
#> "<p>Hello Joel, Nice to see you.</p>"
  Similar a la concatenación, el echo (cuando se usa sin paréntesis) se puede usar para combinar cadenas y variables (junto con otras expresiones arbitrarias) usando una coma (,). 
$itemCount = 1;
echo 'You have ordered ', $itemCount, ' item', $itemCount === 1 ? '' : 's';
//                      ↑           ↑        ↑                - Note the commas
#> "You have ordered 1 item"
 Concatenación de cadenas vs pasar múltiples argumentos a echo
Pasar múltiples argumentos al comando echo es más ventajoso que la concatenación de cadenas en algunas circunstancias. Los argumentos se escriben en la salida en el mismo orden en que se pasan.
echo "The total is: ", $x + $y;
  El problema con la concatenación es que el período . Tiene prioridad en la expresión. Si se concatena, la expresión anterior necesita paréntesis adicionales para el comportamiento correcto. La precedencia del período afecta también a los operadores ternarios. 
echo "The total is: " . ($x + $y);
        Salida de enteros grandes
 En sistemas de 32 bits, los enteros más grandes que PHP_INT_MAX se convierten automáticamente a flotar. La salida de estos como valores enteros (es decir, notación no científica) se puede hacer con printf , utilizando la representación float , como se ilustra a continuación: 
foreach ([1, 2, 3, 4, 5, 6, 9, 12] as $p) {
    $i = pow(1024, $p);
    printf("pow(1024, %d) > (%7s) %20s %38.0F", $p, gettype($i), $i, $i);
    echo "  ", $i, "\n";
}
// outputs:
pow(1024,  1)  integer                 1024                                   1024  1024
pow(1024,  2)  integer              1048576                                1048576  1048576
pow(1024,  3)  integer           1073741824                             1073741824  1073741824
pow(1024,  4)   double        1099511627776                          1099511627776  1099511627776
pow(1024,  5)   double  1.1258999068426E+15                       1125899906842624  1.1258999068426E+15
pow(1024,  6)   double  1.1529215046068E+18                    1152921504606846976  1.1529215046068E+18
pow(1024,  9)   double  1.2379400392854E+27           1237940039285380274899124224  1.2379400392854E+27
pow(1024, 12)   double  1.3292279957849E+36  1329227995784915872903807060280344576  1.3292279957849E+36
 Nota: ¡cuidado con la precisión de flotación, que no es infinita!
Si bien esto se ve bien, en este ejemplo artificial, todos los números se pueden representar como un número binario, ya que todos son potencias de 1024 (y, por lo tanto, 2). Ver por ejemplo:
$n = pow(10, 27);
printf("%s %.0F\n", $n, $n);
// 1.0E+27 1000000000000000013287555072
        Genere una matriz multidimensional con índice y valor e imprima en la tabla
Array 
( 
    [0] => Array 
        ( 
            [id] => 13 
            [category_id] => 7 
            [name] => Leaving Of Liverpool 
            [description] => Leaving Of Liverpool 
            [price] => 1.00 
            [virtual] => 1 
            [active] => 1 
            [sort_order] => 13 
            [created] => 2007-06-24 14:08:03 
            [modified] => 2007-06-24 14:08:03 
            [image] => NONE 
        ) 
    [1] => Array 
        ( 
            [id] => 16 
            [category_id] => 7 
            [name] => Yellow Submarine 
            [description] => Yellow Submarine 
            [price] => 1.00 
            [virtual] => 1 
            [active] => 1 
            [sort_order] => 16 
            [created] => 2007-06-24 14:10:02 
            [modified] => 2007-06-24 14:10:02 
            [image] => NONE 
        ) 
)  
 Matriz multidimensional de salida con índice y valor en tabla
<table>
<?php 
foreach ($products as $key => $value) {
    foreach ($value as $k => $v) {
        echo "<tr>";
        echo "<td>$k</td>"; // Get index.
        echo "<td>$v</td>"; // Get value.
        echo "</tr>";
    }
}
?>
</table>