Tipos de datos en PHP

El PHP soporta distintos tipos de datos, que no los tiene que impostar el programador, sino que son asumidos directamente por el motor, siempre que el programador no cambie el tipo (utilizando la función settype() ).

Los datos pueden ser:

  • Integer;
  • Floating Point number;
  • String;
  • Array;
  • Object.Vamos a verlos de uno en uno.

    Integer

    Los Integers, o enteros, pueden tener distintos valores númericos que se expresan con diferentes anotaciones.

    $a = 18; # decimal
    $a = -18; # decimal negativo
    $a = 022; # anotación octal; es igual a 18 decimales
    $a = 0x12; # anotación exadecimal, es igual a 18 decimales

    Probablmente, por lo menos para empezar, tendréis que utilizar sobre todo los números decimales, sin embargo hay que saber que el lenguaje admite incluso otras anotaciones ademas de la decimal.

    Floating point number

    Este tipo de datos son los números con la coma móvil, por ejemplo, 9.876. La sintaxis para utilizarlos es bastante simple:

    $a = 9.876;
    $a = 9.87e6;

    Strings

    Con respecto a las strings hay mucho más que decir porque son tipos de datos diferentes. La sintaxis de base es:

    $string = «Yo soy una cadena»;

    Si se utilizan las comillas («»), el contenido de la cadena se expande (o, técnicamente, «interpolado») , como en el ejemplo a continuación:

    $num = 10;
    $string = «El número es $num»;

    Esto visualizará «El número es 10».
    Sin embargo, como con todos los lenguajes, también con los PHP tenemos caracteres especiales que tienen que estar anticipados por un símbolo, por ejemplo:

    $num = 10;
    $string = «El número es «$num»»;

    Los que piensen que el output de este código es ‘El número es «10»‘ se equivocan. A parte de que, así como está escrito, el script daría un error de redacción, las comillas son caracteres especiales, sin embargo, es posible utilizarlas. Por lo tanto la sintaxis correcta para el mando es:

    $num = 10;
    $string = «El número es \»$num\»»;

    Otros caracteres especiales son:

    \n -> newline
    \r -> carriage return
    \t -> tabulación
    \\ -> backslash
    \$ -> símbolo del dólar

    La alternativa a los caracteres de escape, cuando no haya contenidos que extender, son los ápices (»); por ejemplo:

    $string = ‘$ es el símbol del dólar’;

    visualizará precisamente los que están en los ápices. Cuidado con un error muy común:

    $num = 10;
    $string = ‘El número es $num’;

    no visualizará «El número es 10» sino «El número es $num». Por lo tanto, podemos decir que con los ápices el contenido de la cadena se se hace una transmisión literal, tal como está escrito entre las ápices

    Array

    El PHP soporta tanto los array escalares como los array asociativos.

    En PHP un array de valores se puede crear explícitamente definiendo los elementos, o su creación puede hacerse introduciendo valores en el array. Por ejemplo:

    $a = («abc», «def», «ghi»);

    crea el array definiendo explícitamente los elementos del array, al contrario de lo que ocurre en el ejemplo siguiente:

    $a[0] = «abc»;
    $a[1] = «def»;
    $a[2] = «ghi»;

    En este caso, el array se crea con tres elementos. Recordemos que el primer elemento de un array se identifica con el número «0». Si, por ejemplo, la longitud de una array es «5», éste incluye seis elementos. El elemento que tiene el índice «0» es el primero del array.
    Si, en cambio, para añadir elementos a un array (supongamos que nos referimos al que hemos creado arriba) se utilizan los corchetes vacíos y los datos se ajustan al array. Por ejemplo:

    $a[] = «lmn»;
    $a[] = «opq»;

    En este caso caso, el array se alarga 2 elementos y resulta ser:

    $a[0] = «abc»;
    $a[1] = «def»;
    $a[2] = «ghi»;
    $a[3] = «lmn»;
    $a[4] = «opq»;

    Este ejemplo es mucho más útil cuando queremos ajustar los elementos al array sin acudir a funciones específicas y sin tener que leer el número de los elementos que están en el array. Todo se ajustará automáticamente y correctamente.

    Los array asociativos se basan, en cambio, en parejas «name-value» y un ejemplo podría ser:

    $a = array(
    «nombre» => «Mario»,
    «apellido» => «Rossi»,
    «email» => «mario@rossi.com»,
    );

    Es interesante la posibilidad que tiene la función array de introducir las entries, como en el ejemplo que sigue:

    $a = array(
    «primero» => array(
    «nombre» => «Mario»,
    «apellido» => «Rossi»,
    «email» => «mario@rossi.com»,
    ),
    «segundo» => array(
    «nombre» => «Marco»,
    «apellido» => «Verdi»,
    «email» => «mario@verdi.com»,
    )
    );

    Ejecutar en este array una instrucción del tipo:

    visualizará «mario@verdi.com»

    Objects

    En PHP se pueden utilizar también los objetos. Para empezar vamos a ver un ejemplo:

    class visualiza {
    function ejecutar_visualiza () {
    eco «Visualiza un mensaje»;
    }
    }

    $obj=new visualiza;
    $obj->ejecutar_visualiza();

    En primer lugar definimos la clase «visualiza», que incluye la función «ejecutar_visualiza» que quiere decir que visualiza simplemente un mensaje en la pantalla.
    Con la declaración «new» inicializamos el objeto «$obj» e invocamos la función visualizar con el operador -> en $obj.
    Como podéis ver, utilizar los objetos no es nada difícil aunque, para describirlos más en detalle, serían neceserario más explicaciones.

    Operadores

    Los operadores que se pueden utilizar con PHP son parecidos a los que se utilizan con otros lenguajes de programación. Para nuestra comodidad, los vamos a dividir en distintas «familias»: los operadores aritméticos, los operadores de asignación y todos los demás.

    Operadores aritméticos

    Los operadores aritméticos son los más simples y son:

    $a + $b -> sumar
    $a – $b -> restar
    $a * $b -> multiplicar
    $a / $b -> dividir
    $a % $b -> resto

    Fijémonos un momento en los últimas dos:

    * El resultado de la división no se aproxima al entero que está más cerca sino que da todo el número. El número de los caracteres después del punto se define en el archivo php3.ini en la línea:

    precision = 14

    Por lo tanto, saldrán sólo 14 números después de la coma, siempre que los haya, como en el ejemplo:

    $a = 12;
    $b = 5;
    $c = $a / $b;
    echo $c;

    el resultado es 2.4 y se visualizará precisamente como 2.4, no como 2.40000000000000. Por lo tanto, los 14 decimales se visualizan sólo si existen y no indiscriminadamente como ceros inútiles.

    * el resto se da por sí solo, sin el resultado de la división misma. Si en el ejemplo anterior hubieramos utilizado «%» en vez de «/», el resultado habría sido «2»

    Asignación

    A menudo, desgraciadamente, los operadores de asignación se confunden con el operador de identidad. El operador «=» tiene un significado que no hay que confundir con el de «==».
    El operdaor de asignación es el símbolo igual a (=) que da a una variable un valor, por ejemplo

    $a = 2;

    asigna a «$a» el valor «2».
    El error que se hace a menudo es escribir algo como:

    if ($a=2) {
    do_something;
    }

    que, si lo leen ojos inexpertos, podría parecer una expresión para decir que si $a es IGUAL a 2 hay que ejecutar el código que está entre las llaves. Pues bien, no es tan grave: si hubieramos querido escribir lo que acabamos de decir, hubiéramos tenido que utilizar:

    if ($a == 2) {
    do_something;
    }
    Otros operadores

    Los operadores que el PHP nos pone a disposición son muchos y veremos en está página los más importantes que hasta ahora no hemos tenido la posibilidad de analizar. En particular, hablaremos de los valores booleanos, los matemáticos y los de incremento-decremento:

    $a & $b
    operador «And» ($a e $b);

    $a && $b
    como arriba, pero con una procedencia más alta;

    $a | $b
    operador «Or» ($a o $b);

    $a || $b
    como arriba, pero con una procedencia más alta;

    $a ^ $b
    operador «Xor» ($a o $b pero con ambos);

    !$a
    operador «Not» (verdadero si $a no es verdadera);

    $a == $b
    operador de igualdad, verdadero si $a tiene el mismo valor que $b;

    $a != $b
    lo opuesto de lo de arriba;

    $a < $b; $a es menor de $b; $a <= $b $a es menor o igual a $b; $a > $b
    $a mayor que $b;

    $a >= $b
    $a es mayor o igual a $b;

    $a ? $b : $c
    éste, se utiliza más con las expresiones que con las variables, evalúa $b si $a es verdadera, y evalúa $c si $a es falsa;

    ++$a
    incrementa de uno $a y la devuelve;

    $a++ devuelve $a y la incrementa de uno

    –$a
    $a–
    como los dos anteriores, pero se decrementa el valor;

    Estructuras de control

    No pueden faltar en un lenguaje de programación las estructuras de control que permiten que el programador ejecute unas acciones en el programa cuando se dan (o no se dan) determinadas condiciones.

    IF
    If permite ejecutar un bloque de noticias si se da (o no se da) una determinada condición. Su sintaxis es:

    if (condición)
    statement

    Por ejemplo, queremos que un script nos indique si dos variables son iguales:

    $a = 2;
    $b = 2;
    if ($a == $b) {
    eco «\$a es igual a \$b y valen $a.\n»;
    }

    If se puede utilizar también de forma diferente de la que acabamos de explicar. Aquí hay un ejemplo:


    $a es igual a $b.

    que hace lo mismo que la de arriba.

    «if» se puede utilizar incluso entre llaves, utilizando «endif» cuando se quiera terminar el bloque «if»; por ejemplo:

    if ($a == $b)
    eco «\$a es igual a \$b y valen $a.\n»;
    endif;