Mostrando las entradas con la etiqueta php. Mostrar todas las entradas
Mostrando las entradas con la etiqueta php. Mostrar todas las entradas

Tipos de datos de php


                          Tipos de Datos                              
® Booleanos
® Enteros
® Números en punto flotante
® Cadenas
® Arrays
® Objetos
® Recursos
® NULL
® Forzado de tipos
PHP soporta ocho tipos primitivos:
• booleanos
• enteros
• números en punto flotante
• cadenas
• matrices
• objetos
• recursos (resource)
• NULL

El tipo de una variable normalmente no lo indica el programador; en su lugar, lo
decide PHP en tiempo de ejecución dependiendo del contexto en el que se utilice esa
variable.
Si desea conocer el tipo y valor de una expresión, se puede usar la función
var_dump(). Para obtener una representación legible para humanos del tipo de una
variable para propósitos de depuración, se puede usar la función gettype(). Para
comprobar si una variable es de un cierto tiepo, no se debe usar gettype(), si no las
funciones is_tipo.

<?php
$un_bool = TRUE;   // un valor booleano
$un_str  = "foo";  // una cadena
$un_str2 = 'foo';  // una cadena
$un_int  = 12;     // un entero

echo gettype($un_bool); // imprime: boolean
echo gettype($un_str);  // imprime: string
// Si este valor es un entero, incrementarlo en cuatro
if (is_int($un_int)) {
    $un_int += 4;
}
// Si $bool es una cadena, imprimirla
// (no imprime nada)
if (is_string($un_bool)) {
    echo "Cadena: $un_bool";
}
?>

Si se quisiese obligar a que una variable se convierta a un tipo concreto, se
podría forzar la variable o usar la función settype() para ello.  PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO

50
Nótese que una variable se puede comportar de formas diferentes en ciertas
situaciones, dependiendo de qué tipo sea en ese momento.
4.1. Booleanos
Este es el tipo más simple. Un booleano expresa un valor de verdad. Puede ser
TRUE o FALSE. Para especificar un literal booleano, use alguna de las palabras clave
TRUE o FALSE. Ambas son insensibles a mayúsculas y minúsculas.

$foo = True; // asigna el valor TRUE a $foo
4.2. Enteros
Los enteros se pueden especificar usando una de las siguientes sintaxis:
$a = 1234; # número decimal
$a = -123; # un número negativo
$a = 0123; # número octal (equivalente al 83 decimal)
$a = 0x12; # número hexadecimal (equivalente al 18 decimal)
4.3. Números en punto flotante
Los números en punto flotante (double) se pueden especificar utilizando
cualquiera de las siguientes sintaxis:

$a = 1.234;
$a = 1.2e3;
$a = 7E-10;
4.4. Cadenas
Las cadenas de caracteres se pueden especificar usando uno de dos tipos de
delimitadores.

Si la cadena está encerrada entre dobles comillas ("), las variables que estén
dentro de la cadena serán expandidas (sujetas a ciertas limitaciones de interpretación).
Como en C y en Perl, el carácter de barra invertida ("\") se puede usar para especificar
caracteres especiales:
secuencia significado
\n Nueva línea
\r Retorno de carro
\t Tabulación horizontal
\\ Barra invertida
\$ Signo del dólar
\" Comillas dobles
\[0-7]{1,3}
la secuencia de caracteres que coincida con la expresión regular es un carácter en
notación octal
\x[0-9A-Fa-f]{1,2}
la secuencia de caracteres que coincida con la expresión regular es un carácter en
notación hexadecimal
 PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO
51
Se puede proteger cualquier otro carácter, pero se producirá una advertencia en
el nivel de depuración más alto.

La segunda forma de delimitar una cadena de caracteres usa el carácter de
comilla simple (‘). Cuando una cadena va encerrada entre comillas simples, los únicos
caracteres de escape que serán comprendidos son \\ y \'. Esto es por convenio, así que se
pueden tener comillas simples y barras invertidas en una cadena entre comillas simples.
Las variables no se expandirán dentro de una cadena entre comillas simples.

Las cadenas se pueden concatenar usando el operador . (punto). Nótese que el
operador + (suma) no sirve para esto.

Se puede acceder a los caracteres dentro de una cadena tratándola como un array
de caracteres indexado numéricamente, usando una sintaxis similar a la de C. Vea un
ejemplo más abajo.
<?php
/* Asignando una cadena. */
$str = "Esto es una cadena";

/* Añadiendo a la cadena. */
$str = $str . " con algo más de texto";
/* Otra forma de añadir, incluye un carácter de nueva línea protegido. */
$str .= " Y un carácter de nueva línea al final.\n";
/* Esta cadena terminará siendo '<p>Número: 9</p>' */
$num = 9;
$str = "<p>Número: $num</p>";
/* Esta será '<p>Número: $num</p>' */
$num = 9;
$str = '<p>Número: $num</p>';
/* Obtener el primer carácter de una cadena  */
$str = 'Esto es una prueba.';
$first = $str[0];
/* Obtener el último carácter de una cadena. */
$str = 'Esto es aún una prueba.';
$last = $str[strlen($str)-1];
?>

4.4.1. Conversión a cadenas
Un valor puede ser convertido a cadena usando el moldeamiento (string) o la
función strval().
Un valor booleano TRUE es convertido a la cadena "1", el valor FALSE se
representa como "" (la cadena vacía). De esta forma, se puede convertir de ida y vuelta
entre valores booleanos y de cadena.

Un número integer o de punto flotante (float) es convertido a una cadena que
representa el número textualmente (incluyendo la parte del exponente para los números
de punto flotante). Los números de punto flotante pueden ser convertidos usando la
notación exponencial (4.1E+6).
 PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO

52
Las matrices son siempre convertidas a la cadena "Array"; por esta razón,
echo() y print() no pueden por su cuenta mostrar los contenidos de un valor array. Para
ver un elemento sencillo, use una construcción como echo $arr['foo'].

Los objetos a partir de PHP 4 son convertidos siempre a la cadena "Object". Por
eso, al igual que pasa con las matrices echo() y print() no pueden por su cuenta mostrar
los contenidos de un valor objecto.

Los recursos son siempre convertidos a cadenas con la estructura "Resource id
#1" en donde 1 es el número único del valor recurso asignado por PHP en tiempo de
ejecución. No se debe escribir código que dependa de esta estructura; está sujeta a
cambios.

NULL se convierte siempre a una cadena vacía.

Como se ha indicado anteriormente, convertir directamente un valor tipo array,
object, o resource a un string no ofrece información útil sobre los valores más allá de su
tipo. Si desea inspeccionar el contenido de estos tipos debe usar las funciones print_r()
y var_dump().
 
La mayoría de valores PHP pueden ser convertidos también a string para su
almacenamiento permanentemente. Este método es conocido como serialización
(seriación), y es efectuado por la función serialize().

4.4.2. Conversión de cadenas a números
Cuando una cadena se evalúa como un valor numérico, el valor resultante y el
tipo se determinan como sigue.
La cadena se evaluará como un doble si contiene cualquiera de los caracteres '.',
'e', o 'E'. En caso contrario, se evaluará como un entero.
El valor viene dado por la porción inicial de la cadena. Si la cadena comienza
con datos de valor numérico, este será el valor usado. En caso contrario, el valor será 0
(cero). Los datos numéricos válidos son un signo opcional, seguido por uno o más
dígitos (que opcionalmente contengan un punto decimal), seguidos por un exponente
opcional. El exponente es una 'e' o una 'E' seguidos por uno o más dígitos.

Cuando la primera expresión es una cadena, el tipo de la variable dependerá de
la segunda expresión.

$foo = 1 + "10.5";                // $foo es doble (11.5)
$foo = 1 + "-1.3e3";              // $foo es doble (-1299)
$foo = 1 + "bob-1.3e3";           // $foo es entero (1)
$foo = 1 + "bob3";                // $foo es entero (1)
$foo = 1 + "10 Cerditos";         // $foo es entero (11)
$foo = 1 + "10.0 Cerditos";       // $foo es double (11)
$foo = "10.0 cerdos " + 1;        // $foo es double (11)
$foo = "10.0 cerdos " + 1.0;      // $foo es double (11)
Si quisiera probar cualquiera de los ejemplos de esta sección, puede cortar y
pegar los ejemplos e insertar la siguiente línea para ver por sí mismo lo que va
ocurriendo:  PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO
53

echo "\$foo==$foo; el tipo es " . gettype( $foo ) . "<br>\n";
4.5. Arrays
Los arrays actualmente actúan tanto como tablas hash (arrays asociativos) como
arrays indexados (vectores).
4.5.1. Arrays unidimensionales
PHP soporta tanto arrays escalares como asociativos. De hecho, no hay
diferencias entre los dos. Se puede crear una array usando las funciones list() o array(),
o se puede asignar el valor de cada elemento del array de manera explícita.

$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;
$matriz = array("foo" => "bar", 12 => true);

También se puede crear un array simplemente añadiendo valores al array.
Cuando se asigna un valor a una variable array usando corchetes vacíos, el valor se
añadirá al final del array.
$a[] = "hola"; // $a[2] == "hola"
$a[] = "mundo"; // $a[3] == "mundo"
Los arrays se pueden ordenar usando las funciones asort(), arsort(), ksort(),
rsort(), sort(), uasort(), usort(), y uksort() dependiendo del tipo de ordenación que se
desee.

Se puede contar el número de elementos de un array usando la función count().
Se puede recorrer un array usando las funciones next() y prev(). Otra forma
habitual de recorrer un array es usando la función each().
4.5.2. Arrays Multidimensionales

Los arrays multidimensionales son bastante simples actualmente. Para cada
dimensión del array, se puede añadir otro valor [clave] al final:
$a[1]      = $f;           # ejemplos de una sola dimensión
$a["foo"]  = $f;  

$a[1][0]     = $f;         # bidimensional
$a["foo"][2] = $f;         # (se pueden mezclar índices numéricos y asociativos)
$a[3]["bar"] = $f;         # (se pueden mezclar índices numéricos y asociativos)
$a["foo"][4]["bar"][0] = $f;   # tetradimensional!

En PHP3 no es posible referirse a arrays multidimensionales directamente dentro
de cadenas. Por ejemplo, lo siguiente no tendrá el resultado deseado:

$a[3]['bar'] = 'Bob';
echo "Esto no va a funcionar: $a[3][bar]"; PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO

54
En PHP3, lo anterior tendrá la salida Esto no va a funcionar: Array[bar]. De
todas formas, el operador de concatenación de cadenas se puede usar para solucionar
esto:
$a[3]['bar'] = 'Bob';
echo "Esto va a funcionar: " . $a[3][‘bar’];
A partir de PHP4, sin embargo, todo el problema se puede solucionar encerrando
la referencia al array (dentro de la cadena) entre llaves:

$a[3]['bar'] = 'Bob';
echo "Esto va a funcionar: {$a[3][‘bar’]}";
Se pueden "rellenar" arrays multidimensionales de muchas formas, pero la más
difícil de comprender es cómo usar el comando array() para arrays asociativos. Estos
dos trozos de código rellenarán el array unidimensional de la misma manera:
# Ejemplo 1:

$a["color"] = "rojo";
$a["sabor"] = "dulce";
$a["forma"] = "redondeada";
$a["nombre"] = "manzana";
$a[3]  = 4;
# Ejemplo 2:
$a = array(
     "color" => "rojo",
     "sabor" => "dulce",
     "forma" => "redondeada",
     "nombre"  => "manzana",
     3       => 4
);

La función array() se puede anidar para arrays multidimensionales:
<?php
$a = array(
     "manzana"  => array(
          "color"  => "rojo",
          "sabor"  => "dulce",
          "forma"  => "redondeada"
     ),
     "naranja"  => array(
          "color"  => "naranja",
          "sabor"  => "ácido",
          "forma"  => "redondeada"
     ),
     "plátano"  => array(
          "color"  => "amarillo",
          "sabor"  => "paste-y",
          "forma"  => "aplatanada"
     )
);

echo $a["manzana"]["sabor"];    # devolverá "dulce"
?>

Siempre deben usarse comillas alrededor de un índice de matriz tipo cadena
literal. Por ejemplo, $foo['bar'] es correcto, mientras que $foo[bar] no lo es. Funciona
pero no es correcto. Funciona porque PHP automáticamente convierte una cadena pura
(una cadena sin comillas que no corresponda con símbolo conocido alguno) en una
cadena que contiene la cadena pura. Por ejemplo, si no se ha definido una constante
llamada bar, entonces PHP reemplazará su valor por la cadena 'bar' y usará ésta última. PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO
55
4.6. Objetos
Para inicializar un objeto, se usa la sentencia new para instanciar el objeto a una
variable.

class foo {
    function do_foo () {
        echo "Haciendo foo.";
    }
}

$bar = new foo;
$bar->do_foo();
4.7. Recursos
Un valor tipo resource es una variable especial, que contiene una referencia a un
recurso externo. Los recursos son creados y usados por funciones especiales. Gracias al
sistema de conteo de referencias introducido con el Motor Zend de PHP 4, un recurso
que ya no es referenciado es detectado automáticamente, y es liberado por el recolector
de basura. Por esta razón, rara vez se necesita liberar la memoria manualmente. Los
enlaces persistentes con bases de datos son una excepción a esta regla. Estos no son
destruidos por el recolector de basura.

4.8. NULL
El valor especial NULL representa una variable que no tiene valor. NULL es el
único valor posible del tipo NULL. Una variable es considerada como null si:

Ö se le ha asignado la constante NULL.
Ö no ha sido definida con valor alguno.
Ö ha sido eliminada con unset().

Existe un solo valor de tipo null, y ese es la palabra clave NULL, insensible a
mayúsculas y minúsculas.

$var = NULL;

Hay varias funciones interesantes para trabajar con el valor null: is_null() y unset().
4.9. Forzado de tipos
PHP no requiere (o soporta) la declaración explícita del tipo en la declaración de
variables; el tipo de una variable se determina por el contexto en el que se usa esa
variable. Esto quiere decir que si se asigna un valor de cadena a la variable var, var se
convierte en una cadena. Si después se asigna un valor entero a la variable var, se
convierte en una variable entera.
 PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO

56
Un ejemplo de conversión de tipo automática en PHP es el operador suma '+'. Si
cualquiera de los operandos es un flotante, entonces todos los operandos se evalúan
como flotantes, y el resultado será un flotante. En caso contrario, los operandos se
interpretarán como enteros, y el resultado será también un entero. Nótese que esto NO
cambia los tipos de los operandos propiamente dichos; el único cambio está en cómo se
evalúan los operandos.

$foo = "0";  // $foo es una cadena (ASCII 48)
$foo++;      // $foo es la cadena "1" (ASCII 49) convertido a entero (1)
$foo += 1;   // $foo ahora es un entero (2)
$foo = $foo + 1.3;  // $foo ahora es un doble (3.3)
$foo = 5 + "10 Cerditos Pequeñitos"; // $foo es entero (15)
$foo = 5 + "10 Cerditos";     // $foo es entero (15)
Si se desea obligar a que una variable sea evaluada con un tipo concreto se
puede realizar un forzado de tipos. Si se desea cambiar el tipo de una variable se puede
usar la función settype().
Si quisiese probar cualquiera de los ejemplos de esta sección, puede cortar y
pegar los ejemplos e insertar la siguiente línea para ver por sí mismo lo que va
ocurriendo o usar la función var_dump():

echo "\$foo==$foo; el tipo es " . gettype( $foo ) . "<br>\n";

Nota: La posibilidad de una conversión automática a array no está definida
actualmente.

$a = 1;       // $a es un entero
$a[0] = "f";  // $a se convierte en un array, en el que $a[0] vale "f"
Aunque el ejemplo anterior puede parecer que claramente debería resultar en que
$a se convierta en un array, el primer elemento del cual es 'f', consideremos esto:

$a = "1";     // $a es una cadena
$a[0] = "f";  // ¿Qué pasa con los índices de las cadenas? ¿Qué ocurre?
Dado que PHP soporta indexación en las cadenas vía offsets usando la misma
sintaxis que la indexación de arrays, el ejemplo anterior nos conduce a un problema:
¿debería convertirse $a en un array cuyo primer elemento sea "f", o debería convertirse
"f" en el primer carácter de la cadena $a?
 
El forzado de tipos en PHP funciona como en C: el nombre del tipo deseado se
escribe entre paréntesis antes de la variable a la que se pretende forzar.

$foo = 10;   // $foo es un entero
$bar = (double) $foo;   // $bar es un doble

Los forzados de tipo permitidos son:
(int), (integer) - fuerza a entero (integer)
(bool),(bolean) – fuerza a booleano
(real), (double), (float) - fuerza a doble (double)
(string) - fuerza a cadena (string)
(array) - fuerza a array (array)
(object) - fuerza a objeto (object) PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO
57

Nótese que las tabulaciones y espacios se permiten dentro de los paréntesis, así
que los siguientes ejemplos son funcionalmente equivalentes:

$foo = (int) $bar;
$foo = ( int ) $bar;
Puede no ser obvio que ocurrirá cuando se fuerce entre ciertos tipos. Por
ejemplo, lo siguiente debería ser tenido en cuenta.
Cuando se fuerza el cambio de un escalar o una variable de cadena a un array, la
variable se convertirá en el primer elemento del array:

$var = 'ciao';
$arr = (array) $var;
echo $arr[0];  // produce la salida 'ciao'

Cuando se fuerza el tipo de una variable escalar o de una cadena a un objeto, la
variable se convertirá en un atributo del objeto; el nombre del atributo será 'scalar':

$var = 'ciao';
$obj = (object) $var;
echo $obj->scalar;  // produce la salida 'ciao'
Cuando se fuerza el tipo de una variable a booleano, el valor de la variable será
FALSE si: es el valor booleano FALSE, si es el entero 0, si es el flotante 0.0 si es la
cadena vacía o la cadena “0”, si es un array con cero elementos, si es NULL; en
cualquier otro caso el valor será TRUE.

HTML y PHP ¿Cual es mejor?


Para interpretar un archivo, PHP simplemente interpreta el texto del archivo
hasta que encuentra uno de los carácteres especiales que delimitan el inicio de código
PHP. El intérprete ejecuta entonces todo el código que encuentra, hasta que encuentra
una etiqueta de fin de código, que le dice al intérprete que siga ignorando el código
siguiente. Este mecanismo permite embeber código PHP dentro de HTML: todo lo que
está fuera de las etiquetas PHP se deja tal como está, mientras que el resto se interpreta
como código.

Hay cuatro conjuntos de etiquetas que pueden ser usadas para denotar bloques
de código PHP. De estas cuatro, sólo 2 (<?php ... ?> y <script language="php"> ...
</script>) están siempre disponibles; el resto pueden ser configuradas en el fichero de
php.ini para ser o no aceptadas por el intérprete. Mientras que el formato corto de
etiquetas (short-form tags) y el estilo ASP (ASP-style tags) pueden ser convenientes, no
son portables como la versión de formato largo de etiquetas. Además, si se pretende
embeber código PHP en XML o XHTML, será obligatorio el uso del formato <?php ...
?> para la compatibilidad con XML.

Las etiquetas soportadas por PHP son:
Formas de escapar de HTML
<?php
echo("si quieres servir documentos XHTML o XML, haz  como   aquí<BR>");
?>

<?
echo ("esta es la más simple, una instrucción de procesado   SGML <BR>");
?>
<?= expression ?> Esto es una abreviatura de "<? echo expression ?>"<BR>
<script language="php">
echo ("muchos editores (como FrontPage) no aceptan instrucciones de
procesado<BR>");
</script>
<%
echo ("Opcionalmente, puedes usar las etiquetas ASP<BR>");
%>
<%= $variable; # Esto es una abreviatura de "<% echo . . ." %>

El método primero, <?php ... ?>, es el más conveniente, ya que permite el uso
de PHP en código XML como XHTML.
El método segundo no siempre está disponible. El formato corto de etiquetas
está disponible con la función short_tags() (sólo PHP 3), activando el parámetro del
fichero de configuración de PHP short_open_tag, o compilando PHP con la opción --
enable-short-tags del comando configure. Está activa por defecto en php.ini-dist. PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO

34
 
El método cuarto sólo está disponible si se han activado las etiquetas ASP en el
fichero de configuración: asp_tags.
Nota: El soporte de etiquetas ASP se añadió en la versión 3.0.4.
Nota: No se debe usar el formato corto de etiquetas cuando se desarrollen
aplicaciones o librerías con intención de redistribuirlas, o cuando se
desarrolle para servidores que no están bajo nuestro control, porque puede
ser que el formato corto de etiquetas no esté soportado en el servidor. Para
generar código portable y redistribuíble, asegúrate de no usar el formato
corto de etiquetas.

La etiqueta de fin de bloque incluirá tras ella la siguiente línea si hay alguna
presente. Además, la etiqueta de fin de bloque lleva implícito el punto y coma; no
necesitas por lo tanto añadir el punto y coma final de la última línea del bloque PHP.
PHP permite estructurar bloques como:
<?php
if ($expression) {
?>
    <strong>This is true.</strong>
<?php
} else {
?>
    <strong>This is false.</strong>
<?php
}
?>

Este ejemplo realiza lo esperado, ya que cuando PHP encuentra las etiquetas ?>
de fin de bloque, empieza a escribir lo que encuentra tal cual hasta que encuentra otra
etiqueta de inicio de bloque. El ejemplo anterior es, por supuesto, inventado. Para
escribir bloques grandes de texto generamente es más eficiente separalos del código
PHP que enviar todo el texto mediante las funciones echo(), print() o similares.
2.2. Comentarios
Una vez visto como se introduce código PHP dentro del código HTML, lo
siguiente es ver como se puede comentar el código PHP. PHP soporta el estilo de
comentarios de 'C', 'C++' y de la interfaz de comandos de Unix. Por ejemplo:

<?php
    echo "Esto es una prueba"; // Comentario estilo c++
    /* Comentario multi-linea
       con varias lineas de comentario */
    echo "Otra prueba";
    echo "Prueba final"; # Comentario estilo shell de Unix
?>

Los estilos de comentarios de una línea (es decir, // y #) actualmente sólo
comentan hasta el final de la línea o el bloque actual de código PHP, lo primero que
ocurra.
<h1>Esto es un <?php # echo "simple";?> ejemplo.</h1>
<p>La cabecera de arriba dice 'Esto es un ejemplo.'. PROGRAMACIÓN EN LENGUAJE PHP5. NIVEL BÁSICO

Hay que tener cuidado con no anidar comentarios de estilo 'C', algo que puede
ocurrir al comentar bloques largos de código.

<?php
 /*
   echo "Esto es una prueba"; /* Este comentario causa problemas*/
 */
?>
Los estilos de comentarios de una linea actualmente sólo comentan hasta el final
de la linea o del bloque actual de código PHP, lo primero que ocurra. Esto implica que
el código HTML tras // ?> será impreso: ?> sale del modo PHP, retornando al modo
HTML, el comentario // no le influye.
2.3. Instrucciones
Un fragmento de código PHP va a estar compuesto por una o varias
instrucciones. En PHP la separación de instrucciones se hace de la misma manera que
en C o Perl - terminando cada instrucción con un punto y coma.

La etiqueta de fin de bloque (?>) implica el fin de la instrucción, por lo tanto no
es necesario un punto y coma después de la última instrucción. Como se ve en el
ejemplo donde los dos fragmentos siguientes son equivalentes:
<?php
    echo "Esto es una prueba";
?>

<?php echo "Esto es una preba" ?>
Todo script PHP se compone de una serie de sentencias o instrucciones. Una
sentencia puede ser una asignación, una llamada a función, un bucle, una sentencia
condicional e incluso una sentencia que no haga nada (una sentencia vacía). Las
sentencias normalmente acaban con punto y coma como se ha dicho anteriormente.
Además, las sentencias se pueden agrupar en grupos de sentencias encapsulando un
grupo de sentencias con llaves. Un grupo de sentencias es también una sentencia.

Para construir las sentencias o instrucciones se necesitan distintos elementos:
variables y constantes, operadores, estructuras de control, funciones, ...
A continuación se irán viendo cada uno de estos elementos que permiten construir los
scripts de PHP.

PHP frente a otros lenguajes

Para seleccionar un lenguaje de Script las cuatro grandes características que debe
cumplir son: Velocidad, estabilidad, seguridad y simplicidad.

• Velocidad: No sólo la velocidad de ejecución, la cual es importante, sino además no
crear demoras en la máquina. Por esta razón no debe requerir demasiados recursos
de sistema. PHP se integra muy bien junto a otro software, especialmente bajo
ambientes Unix, cuando se configura como módulo de Apache, esta listo para ser
utilizado.
• Estabilidad: La velocidad no sirve de mucho si el sistema se cae cada cierta
cantidad de ejecuciones. Ninguna aplicación es 100% libre de bugs, pero teniendo
de respaldo una increíble comunidad de programadores y usuarios es mucho mas
difícil para lo bugs sobrevivir. PHP utiliza su propio sistema de administración de
recursos y dispone de un sofisticado método de manejo de variables, conformando
un sistema robusto y estable.
• Seguridad: El sistema debe poseer protecciones contra ataques. PHP provee
diferentes niveles de seguridad, estos pueden ser configurados desde el archivo .ini
• Simplicidad: Se les debe permitir a los programadores generar código
productivamente en el menor tiempo posible. Usuarios con experiencia en C y C++
podrán utilizar PHP rápidamente.

Bueno otra característica a tener en cuenta seria la conectividad. PHP dispone de
una amplia gama de librerías, y agregarle extensiones es muy fácil. Esto le permite al
PHP ser utilizado en muchas áreas diferentes, tales como encriptado, gráficos, XML y
otras.
Ventajas adicionales de PHP
• PHP corre en (casi) cualquier plataforma utilizando el mismo código fuente,
pudiendo ser compilado y ejecutado en algo así como 25 plataformas, incluyendo
diferentes versiones de Unix, Windows (95,98,NT,ME,2000,XP,...) y Macs. Como
en todos los sistemas se utiliza el mismo código base, los scripts pueden ser
ejecutados de manera independiente al OS.
• La sintaxis de PHP es similar a la del C, por esto cualquiera con experiencia en
lenguajes del estilo C podrá entender rápidamente PHP. Entre los lenguajes del tipo
C incluimos al Java y Javascript, de hecho mucha de la funcionalidad del PHP se la
debe al C en funciones como fread() o srtlen(), así que muchos programadores se
sentirán como en casa.
• PHP es completamente expandible. Está compuesto de un sistema principal (escrito
por Zend), un conjunto de módulos y una variedad de extensiones de código.
• Muchas interfaces distintas para cada tipo de servidor. PHP actualmente se puede
ejecutar bajo Apache 1.3 y 2.X, IIS, Lighttpd, Netscape servers (Sun Java System,
Sun One, iPlanet, …),… . Otra alternativa es configurarlo como modulo CGI.
• Puede interactuar con muchos motores de bases de datos tales como MySQL, MS
SQL, Oracle, Informix, PostgreSQL, y otros muchos. Siempre podrás disponer de
ODBC para situaciones que lo requieran.
• Una gran variedad de módulos cuando un programador PHP necesite una interfase
para una librería en particular, fácilmente podrá crear una API para esta. Algunas de
las que ya vienen implementadas permiten manejo de gráficos, archivos PDF, Flash,
Cybercash, calendarios, XML, IMAP, POP, etc.
• Rapidez. PHP generalmente es utilizado como modulo de Apache, lo que lo hace
extremadamente veloz. Esta completamente escrito en C, así que se ejecuta
rápidamente utilizando poca memoria.
• PHP es Open Source, lo cual significa que el usuario no depende de una compañía
específica para arreglar cosas que no funcionan, además no estás forzado a pagar
actualizaciones anuales para tener una versión que funcione.

Algunas desventajas
• El manejo de errores no es tan sofisticado como otros lenguajes (ASP.Net, …) .
• No existe IDE o Debugger consolidado. Aunque en la actualidad existen proyectos
varios entre los mas destacados está Eclipse (gratuito) o Zend Studio (de pago).

Cuando debes utilizar PHP y cuando debes utilizar otro lenguaje
Si estás desarrollando bajo una plataforma UNIX o Linux, debes elegir entre
Perl y PHP, ambos excelentes. Para mucha gente PHP es más simple a la hora de
escribir scripts, haciéndolo más productivo en proyectos.
En ambientes Windows compite muy de cerca con ASP.Net , aquí la elección se
basa en asuntos un poco más técnicos y en la política que desee utilizarse para el sitio.
ASP.Net junto a IIS es probablemente más estable que PHP con IIS. Pero en términos
puramente técnicos, PHP bajo Windows Server es mucho más estable (además de ser
más rápido y utilizar menos recursos). De cualquier manera ASP.Net ofrece una mejor
integración con este ambiente sobre todo si se desea utilizar COM+.


THEMRFRIKI S.A. Con tecnología de Blogger.

About