12
Capítulo 3 PHP básico
3 PHP básico 3.1 Sintaxis básica Un archivo .php no es más que un HTML con unos caracteres especiales empotrados en la parte del código que queremos que el motor de PHP lo interprete. Las expresiones o etiquetas que permiten al motor reconocer el código que va a ejecutar son tres principalmente: 1) <?php ?> 2) <script language="php"> 3) <? ?>
</script> y
pares de inicio/terminación. La más estándar es <?php ?>. Para empotrar código en XML o XHTML el formato <?php ?> es obligatorio. Para hacer nuestros scripts en php lo único que necesitamos es un editor de textos (el block de notas mismo) PHP permite embeber pequeños fragmentos de código dentro de la página HTML para llevar a cabo determinadas tareas (como por ejemplo extraer datos de una base de datos) de una forma fácil y eficaz. Para que el servidor sepa que se trata de una página que contiene código php es necesario guardar el archivo con la extensión .php. Las líneas de código de PHP siempre acaban con un punto y coma. Nota: para cada sentencia de código no para cada línea física. Cómo hemos visto combinaremos html y php en nuestros scripts por lo que debemos indicarle al servidor qué partes de la página debe procesar como php y cuales como html (o javascript u otro lenguaje). Para indicarle al servidor que empieza el código php se utiliza la etiqueta <?php Para indicarle que termina el código php utiliza la etiqueta ?> Se puede alternar entre PHP y HTML cuantas veces se quiera, sólo hay que asegurarse de incluir todas las etiquetas de apertura y de cierre
Programación
Arturo Ruvalcaba
13
Capítulo 3 PHP básico
El servidor tiene más carga de trabajo cuando se trata de procesar php, por lo que hay que procurar mantener las partes estáticas de la página fuera de php. Parse error El parse error significa un error de sintaxis: se ha olvidado cerrar unas comillas, abrir una etiqueta de php, un punto y coma, etc. Si al probar un script se obtiene como respuesta "parse error on line 33" es que se ha cometido un error de ese tipo en la línea 33. Los comentarios No olvidar comentar los scripts, lo que hoy puede parecer muy claro y obvio, puede no parecerlo tanto cuando dentro de unas semanas se tenga que revisar el código para añadirle modificaciones. Ni que decir tiene la importancia que adquieren los comentarios si el código tiene que ser después tratado por terceras personas. // Esto es un comentario que ocupa una sola línea /* Esto es un comentario más largo porque incluye mucha más información y por ello ocupa varias líneas de código */ Comentarios de Cabecera A la cabeza de muchos scripts es frecuente ver algo parecido a esto: Código: /* ################################## ## DCP-Portal v4.6 ## ###################################### ## (c) 2001 Serhan D. Kiymaz ## ## ## E-Mail: dcp-portal@dcp-portal.com ## URL: www.dcp-portal.com ## ##################################### ## README ## ################################## ## (c) 2001 Serhan D. Kiymaz ## ## E-Mail: info@dotcom-projects.com ## ## URL: www.dotcom-projects.com #*/ Es lo que se llama un comentario de cabecera que suele incorporar información sobre el script, su funcionalidad, su autor, copyright, instrucciones de utilización, etc. Comentario de cabecera
3.2 Variables Se puede decir que una variable es un contenedor de datos. Las variables pueden almacenar cosas de distinto tipo: números, textos, fechas, etc. Las variables en PHP son temporales. Ellas existen, o sea, tienen un valor durante la duración de un script (programa). Al cambiar de página esas variables dejan de existir a menos que se tomen ciertas medidas para mantener su longevidad.
Programación
Arturo Ruvalcaba
14
Capítulo 3 PHP básico
3.2.1 Sintaxis de las variables Para crear variables con nombres correctos se deben seguir las siguientes reglas: • • • • •
Todos los nombres de variables deben estar precedidos por el signo de pesos ($). Después del signo de pesos, el nombre de la variable debe empezar con una letra (AZ, a-z) o con un guión bajo (_). No puede empezar con un número. El resto del nombre de la variable puede contener cualquier combinación y cantidad de letras, guiones bajos y números. No se pueden usar espacios dentro del nombre de una variable. El guión bajo se utiliza para separar palabras. Los nombres de variables son sensitivos a mayúsculas y minúsculas. Consecuentemente $variable y $Variable son dos variables diferentes.
El nombre de una variable debe ser significativo sobre su propósito y uso. Es útil agregar un comentario sobre la variable al crearla. Por ejemplo el nombre de variable $FirstName es mejor que $FN. En PHP no se requiere declarar o inicializar una variable antes de usarla, pero por claridad del programa es aconsejable definir una variable antes de usarla. Existen dos notaciones convencionales para el nombramiento de variables: a) La notación camello por ejemplo $FirstName; b) La notación con guiones bajos $first_name.
3.2.2 Tipos de variables PHP soporta ocho tipos primitivos. Cuatro tipos escalares: * boolean (verdadero/falso, sí/no, 1/0) se trata como TRUE o FALSE (1 o 0) * integer (número entero) * float (número en coma-flotante, también conocido como 'double') * string (cadena de texto) Dos tipos compuestos: * array (matriz de valores) * object (objetos) Y finalmente dos tipos especiales: * resource (variable especial, que contiene una referencia a un recurso externo) * NULL (variable no tiene valor)
PHP dispone de funciones que sirven para averiguar en cada momento si una variable es nula o que tipo de dato contiene (gettype($mivar);, is_int($entero) ), a continuación un ejemplo con gettype( ):
Programación
Arturo Ruvalcaba
Capítulo 3 PHP básico
15
<?php $a = TRUE; $b = gettype($a); echo $b; ?> Esto devolverá "boolean", sin embargo si se pone entre comillas ("TRUE") se obtiene la salida "string" ya que no identifica la variable como un booleana sino como una cadena de texto. Variables numéricas PHP reconoce dos tipos de variables numéricas: de tipo entero y de punto flotante. En las variables de tipo entero no se pueden tener decimales, éstos se manejan con variables de tipo flotante. String (cadena de texto) Una variable es de tipo string si consiste en una cadena de caracteres (alguna combinación de letras, números, símbolos y espacios) encerrados dentro de un par de comillas simples o dobles. Una variable tipo string puede contener cualquier combinación de caracteres incluyendo nombres de variables. Ejemplos de valores de variables tipo string: “Hello, World!” “Hello, $FirstName!” “7 1/5” “01-02-2007” “2007” Un ejemplo de un valor inválido en una variable tipo string es: “Le apodaban “el flaco” “ Debido a que para usar comillas dentro de una cadena de texto hay que usar el carácter de escape (\) antes. “Le apodaban \”el flaco” ” Nota.- El ejemplo “2007” convierte un entero en cadena al estar entre comillas, pero en PHP se pueden realizar cálculos matemáticos con la cadena “2007” como si fuera un número. Las variables tipo array y object se tratarán en capítulos posteriores.
3.2.3 Asignación de valores a variables Para asignar un valor a una variable, sin importar el tipo se utiliza el signo igual (=). Ejemplos: $numero = 10;
Programación
Arturo Ruvalcaba
16
Capítulo 3 PHP básico
$texto = “Hola”; Para imprimir el valor de una variable se incluye el nombre de ésta en una sentencia print(), dentro de comillas dobles: print “Número es $numero”; print “Texto = $texto”; PHP no es un lenguaje "tipado", es decir; una variable puede contener una variable de texto y después cambiar y contener un número. Se dice que PHP es un lenguaje débilmente “tipado”. Ejemplos: $variable = 10; $variable = “Saludos!”; Si se imprime el valor de $variable el resultado será Saludos!
3.2.4 Uso de variables – variables en php Una variable variable, es en breve, un método de crear una variable que tenga como nombre el valor de otra variable. Por ejemplo, si se tiene una variable $x con el valor de “Juan”, se puede crear la variable $Juan y asignarle el valor “Perez” escribiendo simplemente: $$x = “Perez”; Las instrucciones: echo “ $x ${$x}”; echo “$x $Juan”;
y
Darán el mismo resultado: Juan Perez
3.2.5 Type casting Se preguntarán que es el Type Casting ("Molde" de tipos). Bueno, es una manera de "obligar" a una variable o número de un tipo tomar otro tipo. Por ejemplo, que una variable de un número decimal pase a ser un entero, se haría de la siguiente manera: Código: <?php $a = (int)"2.32"; echo $a; // Imprimiría 2 ?> Estos son los "type castings" más básicos: (int), (integer) Moldea a entero (float),(real),(double) Moldea a decimal
Programación
Arturo Ruvalcaba
17
Capítulo 3 PHP básico
(string) (bool), (boolean) (unset)
Moldea a cadena Moldea a un booleano Moldea a nulo (deja sin valor la variable)
3.3 Entendiendo el uso de comillas PHP soporta simples ( ‘ ) y dobles ( “ ) comillas, las cuales generan diferentes resultados. La regla es la siguiente: • •
Ítems dentro de comillas simples son tratados literalmente. Ítems dentro de comillas dobles son extrapolados, o sea, el nombre de una variable se reemplaza por su valor.
Ejemplo: •
Al declarar variables tipo string y asignarles valores no hay diferencia: $nombre = ‘Juan’; $apellido = “ Pérez”;
•
En la asignación de valores si hay diferencia si incluye nombres de variables: $nombre1 = ‘$nombre $apellido’; $nombre2 = “$nombre $apellido”;
•
Al imprimir si hay diferencia si incluye nombres de variables print “<p>nombre1 es $nombre1<br /> nombre2 es $nombre2</p>”; print ‘<p>nombre1 es $nombre1<br /> nombre2 es $nombre2</p>’;
3.4 Constantes En PHP las constantes son un tipo de dato específico. Al contrario de las variables retienen su valor inicial en todo el programa (script), no se puede cambiar el valor de una constante una vez que se le ha asignado. Para crear una constante se usa la función define() en lugar del operador de asignación (=) usado en las variables: define (‘CONSTANT_NAME’, ‘constant_value’); define (‘SALUDO’, ‘Buenas tardes’); Se acostumbra usar mayúsculas para el nombre de las constantes aunque no es un requerimiento. Es importante resaltar que no se utiliza el signo de pesos ($) para las constantes (porque las constantes no son variables) Se hace referencia a una constante simplemente por su nombre: print CONSTANT_NAME; some_function ( CONSTANT_NAME);
Programación
Arturo Ruvalcaba
18
Capítulo 3 PHP básico
En las sentencias print( ), es incorrecto escribir el nombre de una constante dentro de comillas simples o dobles como en el siguiente ejemplo: print “Hola, NOMBRE”; print ‘Hola, NOMBRE’; En ambos casos el resultado será el texto Hola NOMBRE. En ambos casos se debe usar la concatenación o varias sentencias print( ): print ‘Hola, ‘ . NOMBRE; o print ‘Hola ‘; print NOMBRE; Junto con la función define() para definir constantes, se tiene la función defined(), la cual regresa el valor de TRUE si la constante ha sido definida: defined (‘CONSTANT_NAME’); // TRUE defined (‘NO_SE’); // FALSE Las reglas formales para definir constantes son las mismas que para las variables con excepción de la omisión del signo de pesos. En PHP se tienen varias constantes predefinidas, por ejemplo; PHP_VERSION (la versión de PHP en ejecución), PHP_OS (el sistema operativo en el servidor), por lo que no todos los nombres de constantes están libres.
3.5 Expresiones y operadores A continuación se verán los operadores que se utilizan con más frecuencia en PHP. 3.5.1 Operador de asignación El operador básico de asignación es "=". A primera vista, se podría pensar en él como "es igual a", pero no es así. Lo que quiere decir en realidad es que el operando de la izquierda recibe el valor de la expresión a la derecha (es decir, "se define a"). 3.5.2 Otros operadores En conjunto con el operador básico de asignación existen otros operadores: De aritmética binaria: adición (+); substracción (-); multiplicación ( * ); división ( / ); módulo (%) De cadena: concatenación ( . ) De lógica: y (AND, &&); o (OR, ||); o exclusivo (XOR)
Programación
Arturo Ruvalcaba
19
Capítulo 3 PHP básico
3.5.3 Combinación de operadores Algunos operadores se pueden combinar con el operador de asignación para simplificar una expresión:
Combinación
Equivale a:
Operación
$a += $b
$a = $a + $b
Adición
$a -= $b
$a = $a - $b
Substracción
$a *= $b
$a = $a * $b
Multiplicación
$a /= $b
$a = $a / $b
División
$a %= $b
$a = $a % $b
Módulo
$a .= $b
$a = $a . $b
Concatenación
Tabla 3.1 Tabla de combinación de operadores
3.5.4 Operadores de incremento y decremento PHP ofrece soporte de operadores de pre/post incremento y decremento, al estilo del lenguaje C, como se muestra en la siguiente tabla: Ejemplo
Nombre
Efecto
++$a
Pre-incremento
Incrementa $a en uno, y luego devuelve $a.
$a++
Post-incremento
Devuelve $a, y luego incrementa $a en uno.
−−$a
Pre-decremento
Decrementa $a en uno, luego devuelve $a.
$a--
Post-decremento
Devuelve $a, luego decrementa $a en uno.
Tabla 3.2 Tabla de operadores de incremento/decremento
Programación
Arturo Ruvalcaba