Programación en PHP/Certificación/Lo básico de PHP

De Wikilibros, la colección de libros de texto de contenido libre.

[Volver al Indice principal de Certificación] [Volver al Indice principal]

Capítulo 1[editar]

Bienvenido al Capitulo 1, lo básico de PHP. Aquí introduciremos y recordaremos principios básicos de este gran lenguaje. Para empezar quisiera introducir a PHP. PHP es el lenguaje de programación de la WEB más popular del mundo. De acuerdo con las estimaciones recopiladas en abril del 2004, hay más de 15 millones de dominios únicos -y casi 2 millones de IP únicos- en el World Wide Web que funcionan sobre servidores donde PHP es soportado y usado. Compañías grandes como Yahoo y Disney usan servidores PHP lo cual le da a PHP el sello de confianza. El significado de PHP es: "Hypertext Preprocessor" en español sería Preprocesador de Hipertexto o algo semejante, el cual es un lenguaje diseñado para ser interpretado y no compilado. Pero por el hecho de que este lenguaje no es compilado no quiere decir que no puede cubrir las exigentes demandas de un entorno de Red. También se ha probado que a pesar de que es un lenguaje interpretado, el desempeño es superior o igual a los lenguajes compilados como ASP o JSP. Los dos mayores puntos fuertes de PHP son su simplicidad y la inmensa funcionalidad que provee. Incorpora la elegante sintaxis del lenguaje C y el poder de las estructuras de Perl sin su complejidad. PHP posee un inmenso arsenal de funciones para cada necesidad. ¡Es increíble la cantidad de funciones que uno puede utilizar! y esto nos hace la vida mucho más fácil. También PHP puede ser extendido debido a que posee un conjunto bien definido de APIs en C PHP puede hacer muchísimo con tan solo unas pocas líneas de programación y eso lo veremos a lo largo de nuestro estudio. Así que ¡empecemos ya!

En este capítulo aprenderéis:

  1. Creando vuestro primer programa
  2. Ingresando a modo PHP
  3. Manipulación de tipos de datos
  4. Conversión de tipos y manipulación de tipos
  5. Crear declaraciones
  6. Crear operaciones y expresiones
  7. Escribir funciones
  8. Manipular declaraciones condicionales
  9. Manipular bucles

Creando vuestro primer programa[editar]

Como hemos dicho anteriormente PHP es un lenguaje interpretado, es decir, existe un procesador que va a leer, decodificar y ejecutar línea por línea cada uno de los comandos que deseaís ejecutar. Como regla, los archivos a ser ejecutados deben terminar con la extension .php y deberán ser ejecutados dentro de vuestro servidor que soporte PHP (para más información de cómo empezar, visitad la página principal de este wikibook).

Para crear código dinámico, una de las grandes habilidades de PHP es que puede ser incorporado en conjunto con código XML, XHTML, Javascript, etc. El procesador para poder distinguir entre código PHP y el resto, deberá encontrar una señal (una etiqueta) que le diga cuando empezar y cuando terminar. La etiquetas más comunes son las siguientes:

Para empezar:

<?php

y para terminar:

?>

Antes de la etiqueta de inicio y después de la etiqueta de fin, el procesador simplemente desplegará el contenido de archivo sin modificarlo en ninguna manera. Pero entre estas dos etiquetas el procesador se pondrá a trabajar. Asi por ejemplo, para empezar, crearemos una página Web sencilla que incorpora código dinámico php entre código HTML:

Ejemplo 1.1 - Hola mundo con PHP - hola.php

<html>
 <head>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type">
  <title>Hola mundo con PHP</title>
 </head>
 <body>
 <?php 
   echo " Hola Mundo PHP! ";
 ?>
 </body>
</html>

Como podéis ver, este código se parece a una página web común y corriente, el procesador PHP leerá línea por línea el archivo y lo desplegará tal cual se encuentra hasta que encuentre la etiqueta de inicio. Cuando encuentra la etiqueta de inicio, va a procesar los comandos PHP que vaya encontrando, en este caso procesará el comando echo el cual despliega en la pantalla lo que se encuentre a continuación del comando (este comando lo analizaremos más adelante con más detalle), y así seguirá hasta que encuentre la etiqueta de fin. Después de ésta etiqueta de fin, el procesador dejará de trabajar y seguirá desplegando el archivo hasta que termine el archivo.

Una de las cualidades de PHP es que en un mismo archivo se pueden introducir varias veces etiquetas de inicio y de fin. Eso si, hay que tener presente que cuando se abre una etiqueta de inicio, se debe cerrar esa etiqueta antes de abrir otra. Por ejemplo lo siguiente NO ES VALIDO:

Ejemplo 1.2 : Ejemplo erróneo de varias etiquetas en un mismo archivo:

<?php
    echo "hasta aquí esta bien"; 
      <?php 
          echo "esto no se puede hacer"; 
      ?>
 ?>

Ejemplo 1.3: Ejemplo correcto de varias etiquetas en un mismo archivo:

<?php
    echo "esto esta bien";
 ?>
... aquí van más líneas de HTML ... 
<?php
    echo "esto también está bien"; 
 ?>

Ingresando a modo PHP[editar]

Hay varias formas para decirle al procesador que empiece a trabajar y que deje de trabajar, en otras palabras, hay varias etiquetas de inicio y etiquetas de fin, las más comunes ya las hemos visto: <?php y  ?>

Además de éstas, dependiendo de vuestra configuración en el archivo php.ini, PHP dispone de las siguientes etiquetas de inicio y de fin:

Etiqueta de inicio Etiqueta de fin Descripción
<?php ?> Etiquetas normales, disponibles siempre
<? ?> Etiquetas "cortas", necesitan estar habilitadas en vuestra configuración php.ini
<% %> Etiquetas tipo ASP, necesitan estar habilitadas en vuestra configuración php.ini
<script language="php"> </script> Etiquetas tipo HTML, disponibles siempre

Tabla 1.4 - Etiquetas para ingresar y salir del modo PHP

Todas éstas etiquetas cumplen con la misma función, no hay ninguna diferencia entre una y otra, eso si, si deseais utilizar las etiquetas que no están disponibles siempre, debéis estar seguros de que están activas en vuestra configuración php.ini. Como éstas etiquetas cumplen con la misma función, PHP no produce errores si empezáis con un tipo de etiqueta y terminais con otro tipo. Por ejemplo :

 <?php echo "esto es valido"; %> 

pero el hacer esto no es una buena práctica de programación que os a la postre solo os dará un dolor de cabeza cuando tengáis que depurar vuestro programa.

Etiquetas especiales <?= ?>[editar]

Existe una etiqueta especial de inicio y de fin que sirve para desplegar el valor de una expresión. Así por ejemplo para desplegar la palabra Hola Mundo podemos hacerlo de la siguiente manera

<?= "Hola Mundo" ?>

lo que dará como resultado exactamente lo mismo que si hubiéramos hecho un :

<?php
  echo "Hola Mundo";
 ?>

Incluir archivos externos[editar]

Debemos tener presente que no es necesario tener una correspondencia exacta entre el número de programas con el número de archivos. Es decir, un solo programa puede ocupar varios archivos o varios programas pueden estar dentro de un mismo archivo. Asi podréis crear librerías de código que puede ser rehusado. Existen cuatro formas de incluir archivos externos dentro de vuestro programa actual:

include el cual lee el archivo externo y lo ejecuta. Produce una advertencia si es que el archivo no se encuentra. require el cual hace lo mismo que include pero si es que no encuentra el archivo produce un error y detiene la ejecución de vuestro programa. require_once e include_once que es lo mismo que los dos anteriores con la diferencia que si el archivo ya fue incluido anteriormente, no lo va a incluir nuevamente. Es decir no va a ejecutar el código que se encuentra en el archivo externo más de una vez.

Ejemplo 1.5 - uso de include y require

Grabad lo siguiente en un archivo llamado externo.php

<?= "Esto es el archivo externo. " ?>

Grabad esto, en cambio, en un archivo que se llame principal.php

<?php 
   include 'externo.php';
   echo "Esto es el archivo principal";
 ?>
 

Si ejecutáis el archivo principal.php veréis el resultado:

Esto es el archivo externo. Esto es el archivo principal

Cómo os habéis dado cuenta, el archivo externo.php fue ejecutado el instante que se lo llamó con la palabra clave include.

Cuando invocaís un archivo externo con las palabras claves estudiadas en esta sección el procesador PHP buscará los archivos en vuestro directorio, en el caso de que no las encontrara, buscará dentro del directorio includes que está especificado dentro de vuestro archivo de configuración php.ini y si no lo encuentra en ninguno de estos sitos, entonces procederá a dar los mensajes de error o advertencia.

Manipulación de datos[editar]

La manipulación de datos es una característica de todos los lenguajes de programación. El objetivo de un programa es el manipular información para luego almacenarla o desplegarla. Un aspecto importante para considerar es que hay varios tipos de datos. Por ejemplo un número entero es diferente que un número decimal y los dos a su vez son diferentes que una letra. PHP en este aspecto puede manejar diferentes tipos de datos en formas muy flexibles.

Valores numéricos[editar]

PHP soporta 2 tipos de datos numéricos: enteros y reales. Los tipos reales son representados por la parte entera separada de la parte decimal con un punto (por ejemplo: 12.6) PHP NO soporta el uso de la coma como sustituto del punto, es así que cualquier valor que contenga una coma, no será considerado un valor real. (Por ejemplo: 12,6 o también 1,000.23).

PHP también soporta el uso de números hexadecimales y octales (base 16 y base 8). Para especificar números hexadecimales se debe empezar con el prefijo 0x (cero x) seguido por el número. Por ejemplo si deseo representar un número 10 en 8 bits hexadecimal deberé hacerlo de la siguiente forma: 0x0A. Los números octales deben empezar con un 0 (cero) al inicio del número. Por lo que el número 0323 y el número 323 no son lo mismo. El primero es un número octal y el segundo es un número decimal.

Valores en Cadenas[editar]

Aunque las cadenas de texto son las más populares y usadas, también hay como hacer cadenas binarias que representan archivos gráficos o de sonido. Podemos definir cadenas de tres diferentes formas:

Cadenas entre apóstrofes:[editar]

Los apóstrofes son la forma más sencilla de crear una cadena. Esta cadena por supuesto podrá contener apóstrofes en su interior pero debemos eludir que php piense que es el fin de la cadena con un comando de escape añadiendo un backslash \' por ejemplo:

'Esta es una cadena de texto que tiene \'apostrofes\' en su interior'

De la misma forma si deseáis incluir un backslash en vuestra cadena también deberá llevar un comando de escape. Por ejemplo:

'Esta es una cadena de texto que tiene un \\ backslash en su contenido'

Cadenas entre comillas:[editar]

Cuando especificamos cadenas entre comillas tenemos la flexibilidad de incluir secuencias de escape como : \n - línea nueva \r - retorno \t - tabulación horizontal \\ - backslash \" - comillas \nnn - donde nnn es un valor octal \xnn - donde nn es un valor hexadecimal

como también se puede especificar una cadena en varias líneas como por ejemplo los siguientes producen el mismo resultado:

"Linea de arriba y \nlinea de abajo"

"Linea de arriba y
línea de abajo"

Cadenas de la forma heredoc[editar]

También podemos especificar cadenas en la forma de bloque de la siguiente manera:

<<<TEXTO
Esta es una cadena que soporta varias líneas
como esta
además de secuencias de escape como esta: \t
TEXTO;

Como podéis ver la etiqueta <<< es seguida por cualquier nombre que le querréis dar a vuestro bloque después de lo cual la cadena de texto y para finalizar el texto que inició el bloque finalizado con la marca punto y coma ;

Las cadenas de forma heredoc son muy útiles cuando se necesita grandes cadenas de texto. renato

Valores de decisión[editar]

Un valor de decisión puede tomar los valor True o False (Verdadero o Falso). Normalmente este tipo de valores los usamos para cambiar el curso de ejecución de nuestro programa. Estos tipos de valores son bastante importantes y populares cuando veamos más adelante estructuras condicionales.

Algo para tomar en cuenta es que en PHP el valor True (o Verdadero) es representado o equivalente al valor entero 1 y el valor False (o falso) es representado o equivalente a una cadena de texto vacía.

Por ejemplo:

$var1 = True;
$var2 = False; 

$var3 = var1;

if (var3)   
  echo "var3 es VERDADERO";
else 
  echo "var3 es FALSO"

En esta pequeña aplicación Web, el programa se hace la pregunta: Es la variable var3 verdadera? si es verdadera continua con la siguiente línea. Si no lo es salta a la línea que dice else

Existen operadores que dan como resultado valores de decisión. Por ejemplo los operadores de comparación permiten evaluar dos variables para saber si son mayores, mayores o iguales, iguales, menores o iguales o menores de la siguiente forma:

$val1 == $val2 // compara si dos valores son iguales, retorna True o False (Verdadero o Falso)
$val1 <= $val2 // compara si el valor de la izquierda es menor o igual al valor de la derecha, retorna True o False (Verdadero o Falso)
$val1 < $val2 // compara si el valor de la izquierda es menor que el valor de la derecha, retorna True o False (Verdadero o Falso)
$val1 >= $val2 // compara si el valor de la izquierda es mayor o igual al valor de la derecha, retorna True o False (Verdadero o Falso)
$val1 > $val2 // compara si el valor de la izquierda es mayor que el valor de la derecha, retorna True o False (Verdadero o Falso)
!($val1) // este operador es de negación si $val1 es verdadero, lo cambia para falso y viceversa.

Arreglos o Arrays[editar]

Los arreglos son una sucesión de datos. Para que una variable pueda tener más de un valor asignado, podemos utilizar los arreglos que consisten del nombre de la variable y del índice o lugar donde se está almacenando la información. En PHP los arreglos pueden almacenar varios tipos de valor incluso otros arreglos.

Un ejemplo de un arreglo es:

$var[0] = "primer valor";
$var[1] = "segundo valor";
$var[2] = "tercer valor";

en PHP también podemos usar palabras como índices. Por ejemplo:

$ferrari["F430"] = "increible";
$ferrari["612Scaglietti"]= "impresionante";

En el capítulo 4 veremos en más detalle el uso de arreglos.

Objetos[editar]

Son unidades que contienen cualquier tipo de información. Los objetos pueden representar cualquier cosa y son la base de los lenguajes de programación orientado a objetos. Más adelante veremos más sobre objetos.

El valor de datos NULL[editar]

Muchas veces es necesario decir que un objeto o variable no contiene ningún valor, para ello se creó el tipo de datos NULL. En PHP las variables tendrán el valor NULL en las siguientes ocasiones:

  1. Cuando hayan sido asignadas a la constante NULL
  2. Cuando no se las haya asignado ningún valor
  3. Cuando se haya hecho uso de la función unset() (que la veremos más adelante)


Funciones pre-definidas, Palabras claves, Constantes y Variables[editar]

En todo lenguaje de programación existen palabras claves, variables, constantes y funciones predefinidas que se usan para dar instrucciones al programa para decirle como comportarse. En PHP existe un pequeño número de palabras claves reservadas que se usan en ocasiones especiales, de igual forma existe un número no tan grande de constantes y variables pre-definidas, pero existe un basto conjunto de funciones que cumplen una innumerable cantidad de aplicaciones. En PHP existen funciones para casi cualquier trabajo que requiramos. Poco a poco a lo largo de nuestro estudio veremos muchas de estas palabras claves, variables, constantes y funciones predefinidas y estudiaremos detenidamente las principales y más útiles de ellas.

Podéis hechar un vistazo a la lista de palabras claves aquí: http://us3.php.net/manual/es/reserved.php O podéis ver la lista de funciones aquí: http://us3.php.net/manual/es/funcref.php Podéis ver también las constantes ya definidas aquí: http://us3.php.net/manual/es/reserved.constants.php y las variables predefinidas aquí: http://us3.php.net/manual/es/reserved.variables.php

La gran mayoría de las funciones o palabras claves en PHP NO son de caracteres sensitivos. Por ejemplo la palabra print que despliega mensajes en la pantalla, será reconocido si es que lo llamamos Print o pRInt. La gran mayoría tienen esta característica con muy pocas excepciones que las veremos más adelante.

En PHP se pueden crear nuevas funciones, variables y constantes. Para hacerlo debemos asignar un nombre. Éste nombre se conoce como un identificador. Los identificadores en PHP deben seguir ciertas reglas:

  1. Un identificador DEBE empezar con una letra o un signo _
  2. Un identificador NO puede tener espacios en blanco
  3. Un identificador NO puede llevar el mismo nombre que una palabra clave, función, constante o variable pre-definidas
  4. Después de que el identificador empiece con una letra o un símbolo _, el identificador puede tener cualquier cantidad de letras, líneas o números.

Ejemplo:

Este_identificador_es_valido
_este_también
esteEsOtro1
esteEsOtro2

como ejemplos inválidos tenemos:

Este es un identificador // contiene espacios
123_Identificador_inválido // empieza con números
PHP_VERSION // éste es inválido ya que YA existe, es una constante pre-definida

Variables[editar]

Conversión de tipos y manipulación de tipos[editar]

La manera más fácil de hacerlo cambiando los tipo de variables en PHP es la siguiente:

$var=123;
$var_float=(float)$var; //de esta manera se realiza el cast
$var_double=(double)$var;
$var_string=(string)$var;

Crear declaraciones[editar]

Crear operaciones y expresiones[editar]

Escribir funciones[editar]

Para crear funciones solo basta con comenzar escribiendo la palabra reservada function

Sintaxis

function nombre_de_la_funcion(){ }

Siempre se debe de utilizar llaves para abrir y cerrar la función. Entre los paréntesis se pueden pasar argumentos y hacer funciones más complicadas.

Ejemplo de una función:

<?php function suma(){

$a=50;
$b=30;
$c=$a+$b;
print $c;

} suma(); ?>

El Resultado en el navegador será 80

Manipular declaraciones condicionales[editar]

Manipular bucles[editar]

Preguntas de ejemplo para el examen de Certificación[editar]

<body>

Esta página imprime valores[editar]

<?php

$inicio=0;

for($inicio; $inicio < 11; $inicio++){

      print $inicio."
"; print aleatorio($inicio)."
";

}

function aleatorio($valor) {

      return rand(0,$valor);

}

?>

</body> 3 Julio Siquina