Tipos de variables en PHP

A continuación pongo una lista de los posibles tipos de variables que hay en php.

  • booleanos
  • enteros
  • float
  • string
  • arrays
  • iterables
  • objects
  • resources
  • null
  • callbacks
  • Pseudo-types
  • Type Juggling

booleanos

Un tipo de variable booleano puede tener valor true(verdadero) o false(falso)

<?php
    $bool1 = true; //bool1 es una variable de tipo booleano con valor true
    $bool2 = false;// $bool2 es una variable de tipo booleano con valor false
?>

Enteros

Un entero es un nomero que perteece a el conjunto ℤ = {…, -2, -1, 0, 1, 2, …}.

ejemplos de declaración:

<?php
   $entero = 42;
   echo $entero;
   $entero = 01;
   echo $entero;
   $entero = 0x22;
   echo $entero;
   $entero = 0b11;// si mal no me salen las cuentas esto es 3
 ?>

Flotante( float / double )

los numeros flotantes puede ser cualquier tipo de numero, son los numeros pertenecientes a el conjunto de los numeros reales.Ejemplo 2,3, 3,33333.

String

son todas las variables de tipo texto, serie de caracteres de 256 bytes.

desde PHP 7.0 puede ser de mas soportando y no parece haber una restricción que moleste

<?php
 echo 'echo';
 echo "ejemplo con comillas dobles";

?>

Variable de tipo Array

No se si realmente puedo poner como array a el tipo de variable ya que es de tipo ordered map.

Los ordered maps asocian variables con palabras clave(key). Digamos asocio a con el valor b.

Un array puede contenter otro array,arboles e incluso arrays multidimencionaes. <Ver más>

<?php
   $a = array(
      "foo" => "bar",
      "bar" => "foo"
   );
?>
echo $a['foo'];// devolvera bar
echo $a['bar'];//devolvera foo

Iterables

Desde PHP 7.1 existe el tipo de variable iterable, esta acepta un array o un objeto que este implementando la interfaz Traversable. Esta interfaz
detectar si una clase puede recorrerse mediante foreach.

puede ser usado con yeld form dentro de un generator

uso

puede ser usado como parametro en una función en caso de no ser iterable lanzara un error TypeError.

<?php

function foo(iterable $iterable) {
    foreach ($iterable as $value) {
        // ...
    } 
}

?>


Objetos

A mi me gusta ver las clases como si fueran los planos de una casa y el objeto la casa en si que obtenemos al usar ese plano.

Veamos mejor lo que es un objeto a travez de la definicion de Wikipedia.

Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de los objetos que pertenecen al negocio con que estamos trabajando o al problema con el que nos estamos enfrentando, y con los que podemos interactuar. A través del estudio de ellos se adquiere el conocimiento necesario para, mediante la abstracción y la generalización, agruparlos según sus características en conjuntos. Estos conjuntos determinan las clases de objetos con las que estamos trabajando.

hagamos un objeto casa tal como el ejemplo del inicio.

A las funciones dentro del objeto se le llama metodos.

<?php
class Casa
{
    private $ventanas = 5;
    private $puertas = 3;

    function mostrar()
    {
        echo "tengo una casa con $this->ventanas ventanas y $this->puertas puertas"; 
    }
    public function setVentanas($nro){
        $this->vetanas = $nro;
    }
    public function setPuertas($nro){
        $this->puertas = $nro;
    }
}

$miCasa= new Casa;
$miCasa->mostrar();
// puede usar las funciones setVentana y setPuertas para setear la cantidad de ventanas y puertas
?>

Hablare mas sobre clases en el apartado clases en PHP

Resources

Las variables de tipo resource, contienen referencias a recursos externos, estas son creadas y usadas por funciones especiales.

Ejemplos: Mysql link, es el que se usa para hacer la conexion a base de datos. Por lo general no tocara estas variables directamente sino atravez de una función en este caso mysql_connect(); crea el recurso y lo puede utilizar con otras funciones ( mysql_query(), mysql_result(), otras) y es destruido por mysql_close()

NULL

El valor especial Null representa una variable sin valor y este es el unico valor que puede tener este tipo de variable.

CALLBACKS- Callable functions

Algunas funciones en PHP aceptan funciones como parámetros estas funciones pueden ser definidas por el usuario y son estas que poseen el nombre de llamadas de retorno.

Tomemos de ejemplo una función php que acepte como parámetro una función.

<?php
   $myfunction = function($a):int{
      return $a+2;
   };
   $b = array_map($myfunction, [1,2,3,4]);
   foreach($b as $c){
       echo "$c<br/>";
   }
?>

Bueno se me paso la mano con el ejemplo lo que esta haciendo es sumarle +2 a los valores en array_map atravez de nuestra funcion callback. luego lo imprime en pantalla recorriendo el array $b con foreach.

Pseudo – types

Seudotipos son palabras clave usadas en la documentación de PHP para especificar los tipos o valores que puede tener un argumento. Por favor nótese que no son primitivas del lenguaje PHP. Por lo tanto, no puede utilizar seudotipos como sugerencias de tipo en funciones personalizadas.

manipulacion de tipos(Type Juggling)

PHP no requiere (ni soporta) la definición explicita de tipos en la declaración de variables; el tipo de la variable se determina por el contexto en el cual se emplea la variable. Es decir, si se asigna un valor string a una variable $var, entonces $var se convierte en un string. Si un valor integer es entonces asignado a la misma variable $var, ésta se convierte en integer.

<?php
$foo = "0";  // $foo es string (ASCII 48)
$foo += 2;   // $foo es ahora un integer (2)
$foo = $foo + 1.3;  // $foo es ahora un float (3.3)
$foo = 5 + "10 Cerditos pequeñitos"; // $foo es integer (15)
$foo = 5 + "10 Cerdos pequeños";     // $foo es integer (15)
?>

conversión(cast) de tipo

podemos convertir a un tipo en especifico o forzar a que sea de un tipo en especifico con los ( ).


(int), (integer) – cast a entero
(bool), (boolean) – cast a booleano
(float), (double), (real) – cast a punto flotante o nro real
(string) – cast a string
(array) – cast a array
(object) – cast a objeto
(unset) – cast a NULL

Mas de php en: PHP 101 -mini tutorial de PHP

Ayudame: Por favor deja un comentario antes de irte, tu opinión es bienvenida. Si te gusta el contenido comparte.