Home » PHP » Conversiones de datos en PHP

Conversiones de datos en PHP

Hay conversiones que se efectúan automáticamente y otras que son forzadas mediante el código.

 

Conversión automática de tipos

Ya hemos visto que PHP es muy flexible en el manejo de los tipos de datos, tan flexible es que nos permite sumar una cadena de caracteres a un número. Por ejemplo:
 
$varN = 1;
$varC = '2 flores';
$varC = $varC + $varN; // el resultado será 3
Si la variable de caracteres no comenzase con números sumaría cero, por ejemplo:
 
$varN = 1;
$varC = 'flores';
$varC = $varC + $varN; // el resultado será 1
PHP evalúa la operación que se utiliza (por ejemplo, suma, resta, concatenación, multiplicación, división) y el tipo de datos de los operandos. Según el resultado de la evaluación adaptará los operandos para poder realizar la operación lo mejor posible. Así es como convierte internamente '2 flores' en el entero 2 para llevar a cabo la operación.
 
En una operación aritmética con cadenas intentará obtener el valor numérico de las cadenas. En una operación entre variables enteros y coma flotante dará como resultado una variable de coma flotante.
 
$varN = 1;
$varC = 1.35;
$varN = $varC + $varN; // el resultado será 2.35
Esta conversión automática también sucede cuando una variable numérica se quiere utilizar como cadena de caracteres. Una operación de concatenación de cadenas (.) necesita operandos de cadena de caracteres, por lo cual, si queremos concatenar una cadena de caracteres con una o más variables numéricas lo que sucederá es que PHP convertirá a estas últimas a cadenas de caracteres.
 
$varN = 1;
$varC = "4 flores";
$varN = $varN . $varC; // el resultado será 14 flores

Conversión forzada de tipos

La conversión automática que realiza PHP no siempre es la que más nos conviene. Pero PHP también nos da una herramienta para convertir el tipo de una variable a otro tipo concreto. Las conversiones posibles son las siguientes:
  • (int), (integer): Fuerza la conversión a entero
  • (real), (double), (float): Fuerza la conversión a coma flotante
  • (string): Fuerza la conversión a cadena de caracteres
  • (array): Fuerza la conversión a matriz
  • (object): Fuerza la conversión a un objeto
 
$var = (integer) 250.75; 
// $var queda con el valor 250 -trunca sin redondeo
$var = (real) "250.75 es una cadena"; 
// $var queda con el valor 250.75

$a = array('a', 'b', 'c');
echo $a[0] . "<br>"; // devuelve 'a'
echo $a[1] . "<br>"; // devuelve 'b'

$país = array('nombre' => 'UK', 'capital' => 'Londres');
echo $país['capital']; // devuelve 'Londres'
izq sup der

Deja un comentario