Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

Tipos de variables en PHP

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

Relacionados

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";
?>

veamos un ejemplo mejor para entender la diferencia entre comillas dobles y comillas simples

diferencia entre comillas dobles y simples
$value = 'something from somewhere';
echo "mi valor es $value \n";
echo 'mi valor es $value \n';
echo ": no hay salto de linea";
mi valor es something from somewhere 
mi valor es $value \n: no hay salto de linea

vea que dentro de comillas simples no ocurre ningún tipo de análisis, dentro de comillas dobles tomará el valor de $value donde esta variable se encuentra.

En muchos lenguajes también se puede usar backticks (`) pero en PHP este se encuentra reservado para el operador de ejecución en PHP

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
?>

Hablaré más sobre clases en el apartado de objetos y 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.

imagen sacada de php.net, función array_map
<?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.

La parte de Pseudo types ha cambiado desde la versión 7.4 leer con cautela

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.

Esto ha cambiado hace poco tiempo vea funciones en PHP

manipulación 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

Enumerations

a partir de PHP 8.1

Cumple la función de capa restrictiva sobre las clases o constantes de clases, para proveer una forma de definir un set de posibles valores para un tipo de variable. En pocas palabras estamos creando un tipo de variable que puede recibir ciertos valores.

<?php
enum Suit
{
    case Hearts;
    case Diamonds;
    case Clubs;
    case Spades;
}

function do_stuff(Suit $s)
{
    // ...
}

do_stuff(Suit::Spades);
?>

De hecho hemos estado utilizando una clase de enumeración desde los inicios de PHP y esta es boolean que es una enumeración build-in (que viene por defecto en el lenguaje o programa) que nos permite 2 valores true o false

Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category