bases de la sintaxis php

23
Bases de la sintaxis Como vimos en la introducción al lenguaje, la inserción de PHP en HTML se hace mediante etiquetas especiales <?php .... ?> Sin embargo, hay varias formas alternativas posibles, aunque casi siempre veremos la ya comentada: <? .... ?> Sólo si se activa la función short_tags() o la bandera de configuración short_open_tag. <?php .... ?> <script languaje="php"> .... </script> <% .... %> Sólo si se activan las etiquetas para ficheros 'asp' con la bandera de configuración asp_tags. Al programar debemos separar las diferentes instrucciones con ';' Es la forma en que le indicamos al lenguaje dónde termina cierta instrucción. Habitualmente, para hacer más comprensible (a los humanos) el código, se suelen incluir comentarios; en PHP se pueden incluir de las siguientes formas: podemos comentar varias líneas, quedando comentado todo lo que aparezca entre /* y */ también podemos comentar sólo una línea, comenzando con doble-barra // de forma que lo que queda a la derecha de la doble barra se ignora (es el comentario) otro tipo de comentario de una línea es #, que comentará la línea en la que aparezca pero sólo hasta el tag ?> que cierra el código php.

Upload: cayc5690

Post on 07-Dec-2015

227 views

Category:

Documents


3 download

DESCRIPTION

La Sintaxis

TRANSCRIPT

Page 1: Bases de La Sintaxis Php

Bases de la sintaxis

Como vimos en la introducción al lenguaje, la inserción de PHP en

HTML se hace mediante etiquetas especiales

<?php .... ?>

Sin embargo, hay varias formas alternativas posibles, aunque casi

siempre veremos la ya comentada:

<? .... ?> Sólo si se activa la función short_tags() o la

bandera de configuración short_open_tag.

<?php .... ?>

<script languaje="php"> .... </script>

<% .... %> Sólo si se activan las etiquetas para ficheros 'asp'

con la bandera de configuración asp_tags.

Al programar debemos separar las diferentes instrucciones con ';'

Es la forma en que le indicamos al lenguaje dónde termina cierta

instrucción.

Habitualmente, para hacer más comprensible (a los humanos) el

código, se suelen incluir comentarios; en PHP se pueden incluir de las

siguientes formas:

podemos comentar varias líneas, quedando comentado todo lo

que aparezca entre /* y */

también podemos comentar sólo una línea, comenzando con

doble-barra // de forma que lo que queda a la derecha de la

doble barra se ignora (es el comentario)

otro tipo de comentario de una línea es #, que comentará la

línea en la que aparezca pero sólo hasta el tag ?> que cierra el

código php.

Page 2: Bases de La Sintaxis Php

2. Variables y tipos de datos

Como se comentó antes en la sección de "Conceptos básicos de

programación", PHP es un lenguaje no-tipificado, lo que quiere decir

que el intérprete de PHP asigna el tipo de una variable según el uso

que se esté haciendo de ella.

Por otro lado, en PHP una variable no necesita estar declarada antes

de darle un valor. Además, PHP convierte automáticamente la

variable al tipo de datos que almacena. En un lenguaje fuertemente

tipificado (C/C++ o Java) debemos indicar el tipo en la declaración,

mientras que en PHP no es necesario, lo que hace que programar

resulte más rápido.

Variables

Una variable en PHP define su tipo según el contenido y el contexto

en el que se utilice, es decir, si se asigna una cadena a una variable,

el tipo de esa variable será string. Si a esa misma variable se le

asigna un número, el tipo cambiará a entero.

Una cuestión muy importante es que todo nombre de variable debe

estar precedido por el símbolo $

Tipos de datos numéricos

Cuando estamos programando, los datos los iremos guardando en

variables, para poder trabajar con ellos posteriormente.

Las variables de tipo numérico almacenarán datos enteros o reales.

Al trabajar con este tipo de datos podremos asignar valores

constantes a las variables al crearlas. Asimismo, podemos usar

operadores aritméticos para realizar operaciones aritméticas y

lógicas:

Page 3: Bases de La Sintaxis Php

<?php

$numero = 3 ;

$contador = 2.5 ;

$suma = $numero + $contador;

echo $suma;

?>

En este programa hemos inicializado dos variables con valores

numéricos, las hemos sumado, y por último, mediante el operador

"echo" hemos mostrado el valor resultante de la suma (almacenada

en la variable llamada $suma).

Tipo string

Otro tipo de datos son las cadenas de caracteres, que almacenan

ristras de letras y símbolos.

Las cadenas pueden estar delimitadas por comillas dobles " o simples

'. Habitualmente se usan las comillas dobles para definirlas.

Dentro de una cadena podemos hacer uso de otras variables, de

forma que el valor de aquellas se "expande" en la cadena:

<?php

$cadena = "hola adios" ;

$str = "la cadena vale $cadena \n";

echo $str;

?>

Este programa expande el valor que hemos dado a la variable

llamada $cadena dentro de la variable llamada $str

Así, al mostrar el valor de ésta última con el operador "echo", lo que

hacemos es mostrar:

la cadena vale hola adios

Si la cadena está delimitada por comillas dobles, cualquier variable

incluida dentro de ella será sustituida por su valor. En ocasiones

Page 4: Bases de La Sintaxis Php

querremos usar dentro de las cadenas caracteres especiales. En esos

casos, para especificarlos debemos "escaparlos", lo que significa

anteponerles el carácter backslash (\). Por ejemplo, un retorno de

carro se representa con \n

Las operaciones con cadenas de caracteres son muy similares en

todos los lenguajes de programación.

Hay varias funciones de cadena muy utilizadas. Podemos generar la

fecha y hora actuales usando la función date()

$fecha_generada = date("Y\-n\-j H\:i\:s");

Así, la variable llamada $fecha_generada contendrá una fecha y hora

del tipo "2012-04-23 12:34:23".

Podemos trocear una cadena a partir de un carácter, usando la

función explode() para obtener un array en el que cada casilla del

array contendrá una porción de la cadena inicial:

$trocitos = explode( "#" , $cadena );

En la siguiente dirección encontraremos la guía completa de las

funciones de cadenas de PHP:

http://www.w3schools.com/PHP/php_ref_string.asp

Hemos visto las primeras características de PHP. Vamos a detallar

cómo probar los programas que hagamos. Supongamos que hemos

hecho el siguiente script PHP:

<html>

<body>

<b>Hagamos una suma</b>:<BR>

<?php

Page 5: Bases de La Sintaxis Php

$numero = 3 ;

$contador = 2.5 ;

$suma = $numero + $contador;

echo $suma;

?>

<BR><HR><BR>

<I>Y ahora mostraremos la fecha de hoy</I> <BR>:

<?php

$fecha = date("Y\-n\-j H\:i\:s");

echo $fecha;

?>

</body>

</html>

Para ejecutarlo debemos guardar ese documento de texto con

extensión .php en el espacio web de tu servidor (si estamos usando

XAMPP, debe estar en c:\xampp\htdocs\ ). Supongamos que le

damos por nombre variables.php. Una vez hecho eso, abrimos un

navegador web, y teniendo lanzado en el panel de control de XAMPP

el servidor Apache, nos conectamos en el navegador a la siguiente

URL: http://localhost/variables.php

Como resultado, en el navegador veremos el resultado de ejecutar

nuestro script PHP (en este caso, el valor de la suma de esas

variables numéricas seguido de un mensaje en cursiva, la fecha y la

hora).

En este ejemplo vemos que se pueden poner tantos bloques de

código PHP como queramos dentro del código HTML (aunque en

muchos ejemplos veamos sólo un bloque).

3. Arrays

Page 6: Bases de La Sintaxis Php

Para trabajar con un array (o vector de valores), podemos imaginar

que disponemos de una cajonera en la que los cajones están

numerados. De esta forma, podríamos acceder al elemento i-ésimo de

la cajonera, y lo que estaremos haciendo es acceder al elemento i-

ésimo del array.

Los Arrays en PHP se pueden utlizar tanto como Arrays indexados o

como Arrays asociativos. En realidad no existe ninguna diferencia

entre ellos. Cuando estemos añadiendo datos a un array, si no se

especifica el índice del elemento al que queremos acceder, se

entenderá que queremos asiganr el valor añadiendo el dato al final

(como último elemento).

Uno de los usos más comunes al usar un vector de datos es

almacenar elementos que serán ordenados posteriormente. Así, los

arrays pueden ser ordenados utilizando las siguientes funciones:

asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort() y uksort().

Otras operaciones muy comunes son el recuento de elementos y el

recorrido de los datos almacenados en el array, que se pueden

realizar con las funciones: count(), next(), prev() y each().

Arrays indexados

Un array indexado almacena cada elemento con un índice asociado.

Hay dos formas de crear un array de este tipo:

1. Crear el array automáticamente, comenzando en el índice 0

(asignado al primer valor):

$nombres=array("pepe","juan","luisa","antonia");

2. Asignar los índices manualmente:

Page 7: Bases de La Sintaxis Php

$nombres[0]="pepe";

$nombres[1]="juan";

$nombres[2]="luisa";

$nombres[3]="antonia";

A continuación veremos cómo acceder a los elementos que almacena

el array usando los índices asociados:

<?php

$nombres[0]="pepe";

$nombres[1]="juan";

$nombres[2]="luisa";

$nombres[3]="antonia";

echo $nombres[0] . " y " . $nombres[1] . " son chicos.";

?>

Arrays Asociativos

En un array asociativo cada elemento está asociado a un

identificador-clave. Hay dos formas de crear el array:

1. En el siguiente ejemplo, usaremos un array asociativo para guardar

datos de varias personas:

$edad = array(

"Pedro"=>32,

"Juan"=>30,

"Antonio"=>34

);

2. En este otro caso, creamos un array idéntico al anterior, pero

usando una sentencia para cada elemento:

$edad['Pedro'] = "32";

$edad['Juan'] = "30";

$edad['Antonio'] = "34";

Page 8: Bases de La Sintaxis Php

La forma de usar estos arrays en un script es:

<?php

$edad['Pedro'] = "32";

$edad['Juan'] = "30";

$edad['Antonio'] = "34";

echo "Pedro tiene " . $edad['Pedro'] . " años.";

?>

Arrays Multidimensionales

Podemos trabajar también con matrices multidimensionales, como

por ejemplo, una matriz cuadrada (dos dimensiones).

Para dar soporte a los arrays multidimensionales en PHP se combinan

las propiedades de un array unidimensional. Los índices de un array

multidimensional pueden ser tanto numéricos como asociativos.

La idea es que cada elemento del array principal será a su vez un

array:

$matriz = array(

0 => array(5,8,2),

1 => array(4,6,1)

);

echo " $matriz[0][1] \n";

echo " $matriz[1][0] \n";

Este ejemplo nos mostrará por pantalla el 8 y el 4, ya que hemos

accedido a los elementos (0,1) y (1,0) de ese array multidimensional

(matriz cuadrada).

Incluso, podemos hacer que cada elemento de cada sub-array sea

otro array (y así sucesivamente).

Veamos un ejemplo de array multidimensional asociativo:

Page 9: Bases de La Sintaxis Php

$a=array(

"manzana" => array("color" => "rojo", "tacto" => "suave"),

"naranja" => array("color" => "naranja", "tacto" =>

"rugoso"),

"platano" => array("color" => "amarillo", "tacto" =>

"suave")

);

Disponemos de otras sintaxis más compactas para asignar

automáticamente las claves identificadoras:

$familias = array (

"Gracia"=>array ( "Pedro", "Luisa", "Martina" ),

"Sanz"=>array( "Gerardo", "Felisa" ),

"Martos"=>array( "Carlos", "Lorenzo", "Julia" )

);

A partir de ese array, podemos hacer el siguiente acceso:

echo "El segundo miembro de la familia Gracia es " .

$familias['Gracia'][2] ;

Guía Completa del manejo de Arrays en PHP

En la siguiente dirección encontraremos la guía completa de las

funciones de manejo de arrays de PHP:

http://www.w3schools.com/PHP/php_ref_array.asp

Por último, aunque no es una función muy utilizada (salvo si estamos

usando arrays muy muy grandes), existe la función unset()para

eliminar la definición de una variable escalar o un array:

<?php

$nombres=array("pepe","juan","luisa","pepa");

unset( $nombres[0] );

unset( $nombres );

Page 10: Bases de La Sintaxis Php

?>

4. Expresiones y operadores

Una expresión es una combinación de operadores y operandos que al

ser evaluados generan un valor. Los operandos suelen ser nombres

de variables o constantes, pero también pueden ser funciones (ya

que devuelven un valor). La evaluación de una expresión da lugar a

otro valor (normalmente un número o una cadena de caracteres,

aunque puede ser también un valor lógico, etc).

Las expresiones más simples son las variables y las constantes y

otras más complicadas serán las funciones, puesto que cada función

devuelve un valor al ser invocada, es decir, contiene un valor, por lo

tanto, es una expresión.

Al igual que cuando evaluamos expresiones matemáticas, al

programar las expresiones se evalúan de acuerdo con la precedencia

de los operadores. Ante una secuencia de operadores de igual

precedencia, la evaluación se realiza según el orden de escritura, de

izquierda a derecha. El orden de evaluación puede modificarse

usando paréntesis.

Existen diferentes tipos de operadores: aritméticos, de asignación, de

comparación y lógicos. En realidad, todos los operadores, y la forma

de usarlos es muy similar en todos los lenguajes de programación. De

hecho, las expresiones en PHP se parecen mucho a las otros

lenguajes como el C, Java o Perl.

Las siguientes tablas muestran los diferentes operadores disponibles

en PHP:

Operadores aritméticos

Page 11: Bases de La Sintaxis Php

Operadores de asignación

Operadores de comparación

Operadores lógicos

Page 12: Bases de La Sintaxis Php

Veamos a continuación varios ejemplos del uso de los operadores de

PHP en expresiones aritméticas y de comparación:

5. Estructuras de control

Condicionales

Cuando estamos escribiendo código, de cuando en cuando,

querremos ejecutar diferentes porciones de código en función de

Page 13: Bases de La Sintaxis Php

ciertas condiciones. En estos casos debemos usar las sentencias

condicionales.

En PHP disponemos de las siguientes sentencias:

if : se usa para ejecutar una sola porción de código si la

condición es verdadera

if...else : se usa para ejecutar una u otra en función de la

condición

if...elseif....else : podemos especificar varios bloques de

código en función de varias condiciones diferentes

switch : con esta otra podemos especificar muchos bloques

diferentes

A continuación mostramos varios ejemplos de las diferentes

construcciones condicionales.

La construcción if es muy parecida a la utilizada en C. La sintaxis de

la instrucción if es la siguiente (la parte else es opcional):

<html><body>

<?php

$a=3;

$b=7+5

if ( $a == $b ) {

echo "son iguales";

}

?>

</body></html>

<html><body>

<?php

$d=date("D");

if ( $d == "Fri" )

echo "es viernes";

else

Page 14: Bases de La Sintaxis Php

echo "es otro día diferente al viernes";

?>

</body></html>

Para representar una estructura de varios casos se utilizará la sintaxis

siguiente:

<html><body>

<?php

$d=date("D");

if ( $d == "Fri" )

echo "hoy es viernes";

elseif ( $d == "Sun" )

echo "hoy es domingo";

else

echo "hoy no es ni viernes ni domingo";

?>

</body></html>

Al igual que en C, existe la construcción switch, para contemplar

varios casos:

<html><body>

<?php

switch ($x) {

case 1:

echo "Num. 1";

break;

case 2:

echo "Num. 2";

break;

case 3:

echo "Num. 3";

break;

default:

echo "Otro número distinto";

}

Page 15: Bases de La Sintaxis Php

?>

</body></html>

Bucles

Cuando estamos escribiendo código, de cuando en cuando,

tendremos que ejecutar diferentes porciones de código de forma

repetida. En lugar de replicar varias veces el mismo código, debemos

usar las sentencias de tipo bucle:

while : repite el cuerpo mientras que la condición sea cierta

do...while : repite el cuerpo mientras que la condición sea

cierta

for : repite el cuerpo un número de veces

foreach : repite el cuerpo para cada elemento que haya en el

array que le pasamos

La construcción while ejecuta iterativamente un bloque de

instrucciones mientras una expresión sea válida, evaluando la

comprobación en cada iteración. Cuando la prueba es válida, se

ejecuta la instrucción o el bloque de instrucciones delimitado por las

llaves. He aquí un sencillo ejemplo de manejo de esta estructura:

<html><body>

<?php

$i=1;

while ($i<=5) {

echo "Iteración " . $i . "<br />";

$i++;

}

?>

</body></html>

La construcción do-while es similar, salvo que la condición se

comprueba al final del bucle, con lo que al menos una vez se ejecuta:

Page 16: Bases de La Sintaxis Php

<html><body>

<?php

$i=1;

do {

$i++;

echo "Iteración " . $i . "<br />";

} while ($i<=5);

?>

</body></html>

La construcción for permite ejecutar repetidamente un conjunto de

instrucciones. A continuación veremos un ejemplo de esta estructura

para iniciarnos en su manejo:

<html><body>

<?php

for ($i=1; $i<=5; $i++) {

echo " Iteración " . $i . "<br />";

}

?>

</body></html>

La construcción foreach es similar a la función del mismo nombre de

los Shells de Unix. Asocia iterativamente a una variable cada

elemento de la lista. Esta sucesión de valores sirve para parametrizar

la ejecución del bloque de instrucción. Las intrucciones for y foreach

son equivalentes, aunque según el contexto, conviene usar uno u otro

tipo de bucle. Por ejemplo, si tenemos que recorrer un array

seguramente nos convenga usar un bucle del tipo foreach. Veamos

un ejemplo en el que se ven claramente las ventajas de usar foreach:

<html><body>

<?php

$x=array("uno","dos","tres");

foreach ($x as $valor){

echo $valor . "<br />";

}

Page 17: Bases de La Sintaxis Php

?>

</body></html>

En este último ejemplo, veremos cómo recorrer un array asociativo,

extrayendo las claves de acceso a cada elemento:

<?php

$x=array("uno"=>1,"dos"=>2);

foreach ($x as $clave => $valor) {

echo " $clave= $valor ";

}

?>

6. Funciones en PHP

Un programa es una cosa compleja de realizar y por lo tanto es

importante que esté bien estructurado y también que sea inteligible

para las personas.

Una forma de facilitar, reducir y dividir el trabajo en programación, es

escribir aquellos grupos de sentencias una sola vez bajo la forma de

una función o procedimiento.

En Matemáticas, una función es una expresión que permite calcular

una variable dependiente del valor de otras.

En programación, una función es la forma de agrupar una secuencia

de órdenes que hacen una tarea específica de una aplicación más

grande, de forma que más adelante podamos llamar a la función para

ejecutar ese conjunto de órdenes con solo invocar el nombre de la

función.

Para identificar ese módulo o función, debemos dar un identificador a

la misma. Es recomendable poner nombres que indiquen claramente

qué es lo que hace la función. De esta forma podremos entender más

fácilmente qué hace el programa.

Page 18: Bases de La Sintaxis Php

En PHP podemos usar las funciones que nos ofrece el lenguaje, o

podemos crear otras que necesitemos.

Funciones incluidas en el lenguaje PHP

En la siguiente dirección encontraremos la guía completa de las

funciones incluidas en PHP:

http://www.w3schools.com/PHP/default.asp

Crear una función propia. Sintaxis

Como hemos indicado, el cuerpo de una función se ejecuta al llamarla

desde cualquier punto del script. La sintaxis de definición es:

function functionName() {

código a ejecutar;

}

La llamada se realiza escribiendo el nombre dado a la función.

Veamos un ejemplo de función que saluda cuando se la llama:

<html><body>

<?php

function escribe() {

echo "Hola";

}

echo "Vamos a saludar.";

escribe();

?>

</body></html>

Page 19: Bases de La Sintaxis Php

Uso de parámetros

Las funciones normalmente reciben parámetros (actúan,

internamente a la función, como variables). Los parámetros se

especifican en la cabecera de definición entre los paréntesis.

En los siguientes ejemplos, la función recibe parámetros. El ejemplo

de la izquierda recibe un parámetro (nombre) y lo muestra. El

ejemplo de la derecha recibe dos parámetros (nombre y edad) y los

muestra:

<html><body>

<?php

function escribe($nombre) {

echo $nombre . " <br />";

}

echo "Me llamo ";

escribe("Juan");

echo "Te llamas ";

escribe("Luisa");

?>

</body></html>

<html><body>

<?php

function escribe($nombre,$edad) {

echo $nombre . " tiene ";

echo $edad . " años <br />";

}

escribe("Angel","78");

escribe("Pepa","47");

?>

</body></html>

Page 20: Bases de La Sintaxis Php

Devolver valores

Las funciones pueden devolver valores usando la sentencia return

<html><body>

<?php

function suma($x,$y) {

$total=$x+$y;

return $total;

}

echo "1 + 16 = " . suma(1,16);

?>

</body></html>

7. Entrada/Salida con ficheros

PHP permite la utilización de ficheros almacenados en el servidor.

Veremos las funciones básicas: abrir (fopen), cerrar (fclose), leer

(fgets) y escribir (fputs). Con éstas podremos resolver la mayoría de

problemas en los que necesitemos acceder al ficheros.

fopen (archivo, modo): Con esta función abrimos un fichero (bien

sea local o una dirección de internet) sobre el que tengamos permisos

para el tipo de acceso que queremos hacer.

La función fopen nos devuelve un valor numérico (manejador de

archivo) de tipo entero que nos servirá para hacer referencia al

archivo abierto. Con fopen podemos abrir un archivo para lectura (r)

o escritura (w). También podemos abrirlo para lectura y escritura (r+,

a+).

$fichero=fopen("fichero.txt" , "r");

Page 21: Bases de La Sintaxis Php

fgets (manejador_archivo, longitud): La función fgets nos

devuelve una cadena con la longitud especifica del fichero al que

apunta el manejador de archivo.

<?php

$archivo = fopen("fichero.txt" , "r");

if ($archivo) {

while (!feof($archivo)) {

$linea = fgets($archivo, 255);

echo $linea;

}

}

fclose ($archivo);

?>

La función feof devuelve TRUE si el puntero de lectura/escritura se

encuetra al final del fichero, y FALSE en caso contrario.

fputs (manejador_archivo, cadena): La función fputs escribe una

cadena en el fichero indicado (previamente abierto). La función fputs

devuelve TRUE si se ha escrito con éxito, en caso contrario devuelve

FALSE.

<?php

$archivo = fopen("fichero.txt" , "w");

if ($archivo) {

fputs ($archivo, "Hola Mundo");

}

fclose ($archivo);

?>

fclose (manejador_archivo): Con esta función cerramos el fichero

que nos marca el manejador de archivo.

file_exists (fichero): Esta función devuelve TRUE si el archivo

especificado existe, y FALSE en caso contrario.

Page 22: Bases de La Sintaxis Php

<?php

if (file_exists("fichero.txt")) {

echo "El fichero existe";

} else {

echo "El fichero NO existe";

}

?>

A continuación mostramos un ejemplo completo en el que analizamos

un archivo de texto, buscando una palabra clave en cierto campo de

cada línea:

$contador=0;

$encontrado=0;

$F = fopen ($fichero, "r");

while ( !feof($F) ) {

$buffer = fgets($F, 4096);

if($buffer){

$partes = explode( "#" , $buffer );

if( $palabra == $partes[4] ) {

$encontrado=1;

echo "lo he encontrado en la línea $contador \n" ;

}

$contador++;

}

}

fclose($F);