Blog de programación, errores, soluciones

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 número que pertenece 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 números flotantes puede ser cualquier tipo de número, son los números pertenecientes a el conjunto de los números reales.Ejemplo 2,3, 3,33333.

String

Son todas las variables de tipo texto, serie de caracteres de 256 bytes. Desde PHP 7.0 la serie de caracteres puede ser de más de 256 bytes 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 contener otro array, arboles e incluso arrays multi-dimensionales. <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, está acepta un array o un objeto que este implementando la interfaz Traversable. Esta interfaz detecta si una clase puede recorrerse mediante foreach.

Puede ser usado con yeld form dentro de un generator

uso:

Puede ser usado como parámetro 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 mí 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 través de la definición 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 métodos.

<?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 más 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 conexión a base de datos. Por lo general no tocara estas variables directamente sino atrevés 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 único 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 está haciendo es sumarle +2 a los valores en array_map atrevés de nuestra función 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, esta 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 específico o forzar a que sea de un tipo en específico 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

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