| Tipos de variables |
Tipos de variables
• En PHP no es necesaria una definición previa de tipo de variabesDeterminación de tipos de variables
• La función gettype(variable) devuelve una cadena de caracteres con el tipo de la variable que contiene. Los valores que puede devolver son: Integer, double o string.Forzado de tipos de variables
• PHP permite forzar los tipos de variables. Eso quiere decir que se puede obligar a PHP a que asigne un determinado tipo a una determinada variable.La instrucción settype
Otra forma de forzado de variables es el uso de la siguiente instrucción:Operaciones con distintos tipos de variables
PHP permite operar aritméticamente con los tres tipos de variables. En la tabla de la derecha puedes ver algunos ejemplos pero en resumen ocurre lo siguiente:
Tipos de variables
| Las variables en PHP | ||||
| Tipo | Ejemplo | Valor máximo | Valor mínimo | Observaciones |
| Integer | $a=1234 | 2147483647 | -2147483647 | Cualquier valor numérico (dentro de este intervalo) que se asigne a una variable la convertirá a este tipo |
| Double | $a=1.23 | Cualquier valor numérico decimal o entero (fuera del intervalo anterior) que se asigne a una variable la convertirá a este tipo | ||
| String | $a="123" | Cualquier valor entrecomillado (sean números o letras) que se asigne a una variable la convertirá a este tipo | ||
Determinación del tipo de variable utilizada
| Ejemplos de determinación del tipo de una variable | ||
| Variable | Sintaxis | Devuelve |
| $a1=347 | echo gettype($a1) | integer |
| $a2=2147483647 | echo gettype($a2) | integer |
| $a3=-2147483647 | echo gettype($a3) | integer |
| $a4=2147483648 | echo gettype($a4) | double |
| $a5=3.1416 | echo gettype($a5) | double |
| $a6="347" | echo gettype($a6) | string |
| $a7="3.1416" | echo gettype($a7) | string |
| $a8="Solo literal" | echo gettype($a8) | string |
| $a9="12.3 Literal con número" | echo gettype($a9) | string |
Forzado de tipos
| Forzado de tipos | ||
| Variable | Sintaxis | Devuelve |
| $a1=347 | echo gettype((real)$a1) | double |
| $a2=2147483647 | echo gettype((double)$a2) | double |
| $a3=-2147483647 | echo gettype((float)$a3) | double |
| $a4=2147483648 | echo gettype((int)$a4) | integer |
| $a5=3.1416 | echo gettype((integer)$a5) | integer |
| $a6="347" | echo gettype((double)$a6) | double |
| $a7="3.1416" | echo gettype((int)$a7) | integer |
| $a7="3.1416" | echo gettype((string)$a7) | string |
| $a8="Solo literal" | echo gettype((double)$a8) | double |
| $a9="12.3 Literal con número" | echo gettype((int)$a9) | integer |
| Nuevos valores de la variable | ||
| Valor inicial | Sintaxis | Nuevo valor |
| $a1=347 | echo ((real)$a1) | 347 |
| $a2=2147483647 | echo ((double)$a2) | 2147483647 |
| $a3=-2147483647 | echo ((float)$a3) | -2147483647 |
| $a4=2147483648 | echo ((int)$a4) | -2147483648 |
| $a5=3.1416 | echo ((integer)$a5) | 3 |
| $a6="347" | echo ((double)$a6) | 347 |
| $a7="3.1416" | echo ((int)$a7) | 3 |
| $a7="3.1416" | echo ((string)$a7) | 3.1416 |
| $a8="Solo literal" | echo ((int)$a8) | 0 |
| $a9="12.3 Literal con número" | echo ((double)$a9) | 12.3 |
| $a9="12.3 Literal con número" | echo ((int)$a9) | 12 |
Forzado de tipos usando settype()
| Forzado de tipos con settype() | ||
| Variable | Sintaxis | Devuelve |
| $a1=347 | echo (settype($a1,'double') | 1 |
| echo gettype($a1) | double | |
| echo $a1 | 347 | |
| $a2=2147483647 | echo (settype($a2,'double') | 1 |
| echo gettype($a2) | double | |
| echo $a2 | 2147483647 | |
| $a3=-2147483647 | echo settype($a3,'double') | 1 |
| echo gettype($a3) | double | |
| echo $a3 | -2147483647 | |
| $a4=2147483648 | echo settype($a4,'integer') | 1 |
| echo gettype($a4) | integer | |
| echo $a4 | -2147483648 | |
| $a5=3.1416 | echo settype($a5,'integer') | 1 |
| echo gettype($a5) | integer | |
| echo $a5 | 3 | |
| $a6="347" | echo settype($a6,'double') | 1 |
| echo gettype($a6) | double | |
| echo $a6 | 347 | |
| $a7="3.1416" | echo settype($a7,'integer') | 1 |
| echo gettype($a7) | integer | |
| echo $a1 | 3 | |
| $a8="Solo literal" | echo settype($a8,'double') | 1 |
| echo gettype($a8) | double | |
| echo $a8 | 0 | |
| $a9="12.3 Literal con número" | echo settype($a9,'integer') | 1 |
| echo gettype($a9) | integer | |
| echo $a9 | 12 | |
Operando ...que es gerundio...
| Resultados de operaciones y tipos de variables resultantes | |||||
| Valores | Tipos de variables | ||||
| A | B | A+B | A | B | A+B |
| 12 | 16 | 28 | integer | integer | integer |
| 12 | 2147483647 | 2147483659 | integer | integer | double |
| -12 | -2147483640 | -2147483652 | integer | integer | double |
| 12 | 1.2456 | 13.2456 | integer | double | double |
| 1.2456 | 12 | 13.2456 | double | integer | double |
| 1.2456 | 123.4567 | 124.7023 | double | double | double |
| 12 | abc | 12 | integer | string | integer |
| 1.2456 | abc | 1.2456 | double | string | double |
| 12 | 12abc | 24 | integer | string | integer |
| 12 | 12.34567abc | 24.34567 | integer | string | double |
| 1.2456 | 12.34567abc | 13.59127 | double | string | double |
| 1.2456 | 12.3e2abc | 1231.2456 | double | string | double |
| abc | 12abc | 12 | string | string | integer |
| abc | 12.34567abc | 12.34567 | string | string | double |
| 12abc | 12.34567abc | 24.34567 | string | string | double |