martes, 13 de enero de 2009

Manual de PHP 6: Sintaxis Básica: comentarios, constantes y variables

Sintaxis Básica:

1.- Páginas PHP: comentarios con echo y print

2.- Constantes

3.- Variables



Páginas PHP

Las páginas PHP pueden ser páginas web normales a las que se cambia la extensión, poniendo .php en vez de .htm ó .html.

En una página cuyo nombre tenga por extensión .php se pueden insertar instrucciones –escritas en lenguaje PHP– anteponiendo a la primera instrucción y escribiendo des- pués de la última ?>.

A cada uno de estos bloques de instrucciones le llamaremos un script.

No existe límite en cuanto al número de scripts distintos que pueden insertarse dentro de una página.


Un poco de sintaxis

La primera instrucción PHP que conoceremos será esta:

echo "un texto..";

La instrucción echo seguida de un texto entrecomillado hará que el PHP escriba en la página web resultante lo contenido en esa cadena de texto.

Al final de cada instrucción debemos insertar siempre un punto y coma (;)

El (;) indicará a PHP que lo que viene a continuación es una nueva instrucción.

Para facilitar la depuración los scripts no suelen escribirse dos instrucciones en una misma línea.

print "un texto..";

La instrucción print tiene una función similar –no es exacta- mente la misma– a la descrita para echo.

print ("un texto..");

Esta es otra posibilidad –la más habitual– de utilizar print. Aquí encerramos entre paréntesis la cadena que pretendemos que aparezca impresa en la página web.

El hecho de que utilicemos paréntesis no nos evita tener que encerrar la cadena (texto) a imprimir entre comillas.

Comillas dentro de comillas

Existen dos tipos de comillas: dobles « " » (SHIFT+2) y sencillas « ' » (tecla ? en minúsculas).

Cuando es preciso anidar comillas deben utilizarse tipos distintos para las exteriores y para las interiores.

Para que una etiqueta echo interprete unas comillas como texto –y no como el final de la cadena– es necesario antepo- nerles un signo de barra invertida(\).

En ningún caso –ni con echo ni con print– está permitido sustituir las comillas exteriores (las que encierran la cadena) por \". Esta sintaxis solo es válida para indicar a PHP que debe interpretar las comillas como un carácter más.

En la página siguiente veremos las diferentes opciones de las líneas de comentarios.

Al realizar el ejercicio que te proponemos no es necesario que pongas los comentarios del ejemplo.

¿Por qué usar líneas de comentario?

A primera vista pueden parecer inútiles. ¿Para qué recargar las páginas con contenidos que no se van a ver ni ejecutar?

Las líneas de comentario sirven para poder recordar en un futuro qué es lo que hemos hecho al escribir un script y por qué razón lo hemos hecho así.

A medida que vayamos avanzando verás que en muchos casos tendremos que aplicar estrategias individuales para resolver cada problema concreto.

Cuando necesites hacer una corrección o una modificación al cabo de un tiempo verás que confiar en la memoria no es una buena opción. Es mucho mejor utilizar una línea de comentario que confiar en la memoria. ¡Palabra!

Comentarios

Para insertar comentarios en los scripts de PHP podemos optar entre varios métodos y varias posibilidades:


Una sola linea

Basta colocar los símbolos // al comienzo de la línea o detrás del punto y coma que señala el final de una instrucción.
También se puede usar el símbolo # en cualquiera de las dos posiciones.

Varias líneas

Si un comentario va a ocupar más de una línea podremos escribir /* al comienzo de la primera de ellas y */ al final de la última. Las líneas intermedias no requieren de ningún tipo de marca.

Los comentarios para los que usemos la forma /* ... */ no pueden anidarse. Si, por error, lo hiciéramos, PHP nos dará un mensaje de error

<HTML>
<HEAD>
<TITLE>Ejemplo 7</TITLE></HEAD>
<BODY>

<?
// Este comentario no se verá en la página


echo "Esto se leerá <BR> "; // Esto no se leerá

/* Este es un comentario de
múltiples líneas y no se acabará
hasta que no cerremos así.... */


echo "Este es el segundo comentario que se leerá<BR>";

# Este es un comentario tipo shell que tampoco se leerá
# Este, tampoco


echo ("Aquí el tercer texto visible"); #comentario invisible

/* Cuidado con anidar
/* comentarios
multilinea con estos*/

al PHP no le gustan */

?>

</body>
</html>



ejemplo7.php ejemplo7a.php

Ejecutemos los dos ejemplos. En el ejemplo7a hemos quitado el /* que va delante de «comentarios» y el */ que va después de «multilínea con estos» (marcado en magenta en el código fuente) y funciona perfectamente.

En el caso del ejemplo7 hemos mantenido el código exactamente como se muestra aquí arriba. Al ejecutarlo nos dará un error. Esto es una muestra, de la importancia que tiene el evitar anidar los comentarios

¿Qué es una constante?

Una constante es un valor –un número o una cadena– que no va a ser modificado a lo largo del proceso de ejecución de los scripts que contiene un documento.


Para mayor comodidad, a cada uno de esos valores se le asigna un nombre, de modo que cuando vaya a ser utilizado baste con escribir su nombre.

Cuando ponemos nombre a una constante se dice que definimos esa constante.

¿Cómo definir constantes?

En PHP las constantes se definen mediante la siguiente instrucción:


define("Nombre","Valor")

Los valores asignados a las constantes se mantienen en todo el documento, incluso cuando son invocadas desde una función.

No es necesario escribir entre comillas los valores de las constantes cuando se trata de constantes numéricas.

Si se realizan operaciones aritméticas con constantes tipo cadena, y su valor comienza por una letra, PHP les asigna valor cero.

Si una cadena empieza por uno o varios caracteres numéricos, al tratar de operarla aritméticamente PHP considerará únicamente el valor de los dígitos anteriores a la primera letra o carácter no numérico.

El punto entre caracteres numéricos es considerado como separador de parte decimal.

Tal como puedes ver en el código fuente del ejemplo que tienes al margen, es posible definir constantes a las que se asigne como valor el resultado de una operación aritmética.

Ampliando echo

Mediante una sola instrucción echo se pueden presentar (en la ventana del navegador del cliente) de forma simultánea varias cadenas de caracteres y/o constantes y variables. Basta con ponerlas una a continuación de otra utilizando una coma como separador entre cada una de ellas.


La forma anterior no es la única –ni la más habitual– de enlazar elementos mediante la instrucción echo. Si en vez de utilizar la coma usáramos un punto (el concatenador de cadenas) conseguiríamos el mismo resultado.

Cuando enlacemos elementos distintos –cadenas, constantes y/o números– hemos de tener muy en cuenta lo siguiente:

Cada una de las sucesivas cadenas debe ir encerrada entre sus propias comillas.

– Los nombres de constantes nunca van entre comillas.

Ampliando print

Las instrucciones print también permiten concatenar cadenas en una misma instrucción.

En este caso solo es posible usar el punto como elemento de unión. Si pusiéramos comas –como hacíamos con echo– PHP nos daría un error.




<HTML>
<HEAD>
</HEAD>
<BODY>

<?
# Definimos la variable $pepe como vacía
$pepe="";

# Definimos las variables $Pepe y $Pepa (ojo con mayúsculas y minúsculas)
$Pepe="Me llamo Pepe y soy serio y formal";
$Pepa="Me llamo Pepa y también soy seria y formal";

?>

<!-- esto es HTML, hemos cerrado el script -->

<center><b>Vamos a ver el contenido de las variables</b></center>

<!-- un nuevo script PHP -->

<?
echo "<br> El valor de la variable pepe es: ",$pepe;
echo "<br> No ha puesto nada porque $pepe esta vacía";
echo "<br> El valor de la variable Pepe es: ",$Pepe;
?>


<center><b><br>Invocando la variable desde una función</b></center>

<?
/* Escribiremos una function llamada vervariable
Observa la sintaxis. La palabra function delante
y el () al final seguidos de la llave.
Hasta que no cerremos la llave todas las líneas
serán consideradas parte de la función */

function vervariable(){
echo "<br> Si invoco la variable Pepe desde una función";
echo "<br>me aparecerá en blanco";
echo "<br>El valor de la variable Pepe es: ",$Pepe;

}
/* esta llave de arriba señala el final de la función.
Los contenidos que hay en adelante ya no pertenecen a ella */

/* Haremos una llamada a la funcion vervariable.
Las funciones no se ejecutan hasta que no se les ordena
y se hace de esta forma que ves aquí debajo:
nombre de la funcion seguido de los famosos paréntesis */

vervariable();
?>

<!-- mas HTML puro -->
<center><b><br>Ver la variable desde la función
poniendo <i>global</i></b></center>


<?
# una nueva funcion

function ahorasi(){
# aqui definiremos a $Pepe como global
# la función leerá su valor externo
global $Pepe;

echo "<br><br> Hemos asignado ámbito global a la variable";
echo "<br>ahora Pepe aparecerá";
echo "<br>El valor de la variable Pepe es: ", $Pepe;

}

# hemos cerrado ya la funcion con la llave.
# Tendremos que invocarla para que se ejecute ahora
ahorasi();
?>

<center><b><br>Un solo nombre y dos <i>variables distintas</i></b><br>
Dentro de la función el valor de la variable es <br></center>


<?
function cambiaPepa(){

$Pepa="Ahora voy a llamarme Luisa por un ratito";

echo "<br>",$Pepa;

}

cambiaPepa();
?>
<center>... pero después de salir de la función
vuelvo al valor original...</center>

<?
echo "<br>",$Pepa;
?>


</BODY>
</HTML>









¿Qué es una variable?

Podríamos decir que es un espacio de la memoria RAM del ordenador que se reserva –a lo largo del tiempo de ejecución de un script– para almacenar un determinado tipo de datos cuyos valores son susceptibles de ser modificados por medio de las instrucciones contenidas en el propio programa.

Nombres de variables

En PHP todos los nombres de variable tienen que empezar por el símbolo $.

Las nombres de las variables han de llevar una letra inme- diatamente después del símbolo $$pepe1 es un nombre válido, pero $1pepe no es un nombre válido–.

Para PHP las letras mayúsculas y las minúsculas son distintas. La variable $pepe es distinta de $Pepe.

Tipos de variables

En PHP no es necesario definir el tipo de variable, por lo tanto, una misma variable puede contener una cadena de caracteres en un momento del proceso y, posteriormente, un valor numérico, susceptible de ser operado matemáticamente.

Definición de variables

PHP no requiere una definición previa de las variables. Se definen en el momento en que son necesarias y para ello basta que se les asigne un valor.

La sintaxis es esta:

$variable=valor;

El valor puede ser una cadena (texto o texto y números que no requieren ser operados matemáticamente) o sólo un número. En el primero de los casos habría que escribir el valor entre comillas.

Ámbito de las variables

Los valores de una variable definida en cualquier parte de un script –siempre que no sea dentro de una función– pueden ser utilizados desde cualquier otra parte de ese script, excepto desde dentro de las funciones que contuviera el propio script o desde las que pudieran estar contenidas en un fichero externo.

Si una variable es definida dentro de una función sólo podrá ser utilizada dentro esa función.

Si en una función aludimos a una variable externa a ella PHP considerará esa llamada como si la variable tuviera valor cero (en caso de ser tratada como número) o una cadena vacía ("" es una cadena vacía).

Igual ocurriría si desde fuera de una función hiciéramos alusión a una variable definida en ella.

Si definimos dos variables con el mismo nombre, una dentro de una función y otra fuera, PHP las considerará distintas. La función utilizará –cuando sea ejecutada– sus propios valores sin que sus resultados modifiquen la variable externa.

Variables globales

Lo comentado anteriormente, admite algunas excepciones.

Las funciones pueden utilizar valores de variables externas a ellas pero ello requiere incluir dentro de la propia función la siguiente instrucción:

global nombre de la variable;

Por ejemplo: global $a1;

En una instrucción –global– pueden definirse como tales, de forma simultánea, varias variables. Basta con escribir los nombres de cada una de ellas separados por comas.

P. ej.: global $a1, $a2, $a3;

Variables superglobales

A partir de la versión 4.1.0 de PHP se ha creado un nuevo tipo de variables capaces de comportarse como globales sin necesidad de que se definan como tales.

Estas variables que no pueden ser creadas por usuario, recogen de forma automática información muy específica y tienen nombres preasignados que no pueden modificarse.

Las estudiaremos un poco más adelante. Por ahora, sólo citar los nombres de algunas de ellas:
$_SERVER, $_POST, $_GET o $_ENV son los de las más importantes.

<HTML>
<HEAD>
</HEAD>
<BODY>

<?
# Definimos la variable $pepe como vacía
$pepe="";

# Definimos las variables $Pepe y $Pepa (ojo con mayúsculas y minúsculas)
$Pepe="Me llamo Pepe y soy serio y formal";
$Pepa="Me llamo Pepa y también soy seria y formal";

?>

<!-- esto es HTML, hemos cerrado el script -->

<center><b>Vamos a ver el contenido de las variables</b></center>

<!-- un nuevo script PHP -->

<?
echo "<br> El valor de la variable pepe es: ",$pepe;
echo "<br> No ha puesto nada porque $pepe esta vacía";
echo "<br> El valor de la variable Pepe es: ",$Pepe;
?>


<center><b><br>Invocando la variable desde una función</b></center>

<?
/* Escribiremos una function llamada vervariable
Observa la sintaxis. La palabra function delante
y el () al final seguidos de la llave.
Hasta que no cerremos la llave todas las líneas
serán consideradas parte de la función */

function vervariable(){
echo "<br> Si invoco la variable Pepe desde una función";
echo "<br>me aparecerá en blanco";
echo "<br>El valor de la variable Pepe es: ",$Pepe;

}
/* esta llave de arriba señala el final de la función.
Los contenidos que hay en adelante ya no pertenecen a ella */

/* Haremos una llamada a la funcion vervariable.
Las funciones no se ejecutan hasta que no se les ordena
y se hace de esta forma que ves aquí debajo:
nombre de la funcion seguido de los famosos paréntesis */

vervariable();
?>

<!-- mas HTML puro -->
<center><b><br>Ver la variable desde la función
poniendo <i>global</i></b></center>


<?
# una nueva funcion

function ahorasi(){
# aqui definiremos a $Pepe como global
# la función leerá su valor externo
global $Pepe;

echo "<br><br> Hemos asignado ámbito global a la variable";
echo "<br>ahora Pepe aparecerá";
echo "<br>El valor de la variable Pepe es: ", $Pepe;

}

# hemos cerrado ya la funcion con la llave.
# Tendremos que invocarla para que se ejecute ahora
ahorasi();
?>

<center><b><br>Un solo nombre y dos <i>variables distintas</i></b><br>
Dentro de la función el valor de la variable es <br></center>


<?
function cambiaPepa(){

$Pepa="Ahora voy a llamarme Luisa por un ratito";

echo "<br>",$Pepa;

}

cambiaPepa();
?>
<center>... pero después de salir de la función
vuelvo al valor original...</center>

<?
echo "<br>",$Pepa;
?>


</BODY>
</HTML>




No hay comentarios: