logo
Documento sin título
Documento sin título

Manual de PHP para Principiantes (Parte3)

VARIABLES

Conceptos Básicos

En PHP las variables se representan como un signo de dólar seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas.
$var = "Bob";
$Var = "Joe";
echo "$var, $Var"; // produce la salida "Bob, Joe"
En PHP3, las variables siempre se asignan por valor. Esto significa que cuando se asigna una expresión a una variable, el valor íntegro de la expresión original se copia en la variable de destino. Esto quiere decir que, por ejemplo, después e asignar el valor de una variable a otra, los cambios que se efectúen a una de esas variables no afectará a la otra. Para más información sobre este tipo de asignación, vea Expresiones.
PHP4 ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable
simplemente referencia (en otras palabras, "se convierte en un alias de"o "apunta a") la variable original. Los cambios a la nueva variable afectan a la original, y viceversa. Esto también significa que no se produce una copia de valores; por tanto, la asignación ocurre más rápidamente. De cualquier forma, cualquier incremento de velocidad se notará sólo en los bucles críticos cuando se asignen grandes arrays u objetos.
Para asignar por referencia, simplemente se antepone un ampersand (&) al comienzo de la variable cuyo valor se está asignando (la variable fuente). Por ejemplo, el siguiente trozo de código produce la salida ’Mi nombre es Bob’ dos veces:
<?php
$foo = ’Bob’; // Asigna el valor ’Bob’ a $foo
$bar = &$foo; // Referencia $foo vía $bar.
$bar = "Mi nombre es $bar"; // Modifica $bar...
echo $foo; // $foo también se modifica.
echo $bar;
?>
Algo importante a tener en cuenta es que sólo las variables con nombre pueden ser asignadas por referencia.
<?php
$foo = 25;
$bar = &$foo; // Esta es una asignación válida.
$bar = &(24 * 7); // Inválida; referencia una expresión sin nombre.
function test() {
return 25;
}
$bar = &test(); // Inválida.
?>
Variables predefinidas

PHP proporciona una gran cantidad de variables predefinidas a cualquier script que se ejecute. De todas formas, muchas de esas variables no pueden estar completamente documentadas ya que dependen de sobre qué servidor se esté ejecutando, la versión y configuración de dicho servidor, y otros factores. Algunas de estas variables no estarán disponibles cuando se ejecute PHP desde la línea de comandos.

A pesar de estos factores, aquí tenemos una lista de variables predefinidas disponibles en una instalación por defecto de PHP 3 corriendo como modulo de un Apache (http://www.apache.org/) 1.3.6 con su configuración también por defecto.
Para una lista de variables predefinidas (y muchas más información útil), por favor, vea (y use) phpinfo().
Nota: Esta lista no es exhaustiva ni pretende serlo. Simplemente es una guía de qué tipo de variables predefinidas se puede esperar tener disponibles en un script.
Variables de Apache
Estas variables son creadas por el servidor web Apache (http://www.apache.org/). Si se está utilizando otro servidor web, no hay garantía de que proporcione las mismas variables; pueden faltar algunas, o proporcionar otras no listadas aquí.
Dicho esto, también están presentes las variables de la especificación CGI 1.1 (http://hoohoo.ncsa.uiuc.edu/cgi/env.html),
por lo que también se deben tener en cuenta.
Tenga en cuenta que unas pocas, como mucho, de estas variables van a estar disponibles (o simplemente tener sentido) si
se ejecuta PHP desde la línea de comandos.
GATEWAY_INTERFACE
Qué revisión de la especificación CGI está usando el servidor; por ejemplo ’CGI/1.1’.
SERVER_NAME
El nombre del equipo servidor en el que se está ejecutando el script. Si el script se está ejecutando en un servidor
virtual, este será el valor definido para dicho servidor virtual.
SERVER_SOFTWARE
Una cadena de identificación del servidor, que aparece en las cabeceras al responderse a las peticiones.
SERVER_PROTOCOL
Nombre y revisión del protocolo a través del que se solicitó la página; p.ej. ’HTTP/1.0’;
REQUEST_METHOD
Qué método de petición se usó para acceder a la página; p.ej. ’GET’, ’HEAD’, ’POST’, ’PUT’.
QUERY_STRING
La cadena de la petición, si la hubo, mediante la que se accedió a la página.
DOCUMENT_ROOT
El directorio raíz del documento bajo el que se ejecuta el script, tal y como está definido en el fichero de
configuración del servidor.
HTTP_ACCEPT
Los contenidos de la cabecera Accept: de la petición actual, si hay alguna.
HTTP_ACCEPT_CHARSET
Los contenidos de la cabecera Accept-Charset: de la petición actual, si hay alguna. Por ejemplo:
’iso-8859-1,*,utf-8’.
HTTP_ENCODING
Los contenidos de la cabecera Accept-Encoding: de la petición actual, si la hay. Por ejemplo: ’gzip’.
HTTP_ACCEPT_LANGUAGE
Los contenidos de la cabecera Accept-Language: de la petición actual, si hay alguna. Por ejemplo: ’en’.
HTTP_CONNECTION
Los contenidos de la cabecera Connection: de la petición actual, si hay alguna. Por ejemplo: ’Keep-Alive’.

HTTP_HOST
Los contenidos de la cabecera Host: de la petición actual, si hay alguna.
HTTP_REFERER
La dirección de la página (si la hay) desde la que el navegador saltó a la página actual. Esto lo establece el navegador del usuario; no todos los navegadores lo hacen.
HTTP_USER_AGENT
Los contenidos de la cabecera User_Agent: de la petición actual, si hay alguna. Indica el navegador que se está
utilizando para ver la página actual; p.ej. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre otras cosas,
se puede usar este valor con get_browser() para adaptar la funcionalidad de la página a las posibilidades del
navegador del usuario.
REMOTE_ADDR
La dirección IP desde la que el usuario está viendo la página actual.
REMOTE_PORT
El puerto que se está utilizando en la máquina del usuario para comunicarse con el servidor web.
SCRIPT_FILENAME
La vía de acceso absoluta del script que se está ejecutando.
SERVER_ADMIN
El valor que se haya dado a la directiva SERVER_ADMIN (en Apache) en el fichero de configuración del servidor
web. Si el script se está ejecutando en un servidor virtual, será el valor definido para dicho servidor virtual.
SERVER_PORT
El puerto del equipo servidor que está usando el servidor web para la comunicación. Para configuraciones por
defecto, será ’80’; al usar SSL, por ejemplo, cambiará al puerto que se haya definido como seguro para HTTP.
SERVER_SIGNATURE
Una cadena que contiene la versión del servidor y el nombre del servidor virtual que es añadida a las páginas
generadas por el servidor, si está característica está activa.
PATH_TRANSLATED
Vía de acceso basada en el sistema de ficheros- (no el directorio raíz del documento-) del script en cuestión, después
de que el servidor haya hecho la conversión virtual-a-real.
SCRIPT_NAME
Contiene la vía de acceso del script actual. Es útil para páginas que necesitan apuntar a sí mismas.
REQUEST_URI
La URI que se dió para acceder a esta página; por ejemplo, ’/index.html’.
Variables de entorno
Estas variables se importan en el espacio de nombres global de PHP desde el entorno en el que se esté ejecutando el intérprete PHP. Muchas son proporcionadas por el intérprete de comandos en el que se está ejecutando PHP, y dado que a sistemas diferentes les gusta ejecutar diferentes tipos de intérpretes de comandos, es imposible hacer una lista definitiva.
Por favor, mire la documentación de su intérprete de comandos para ver una lista de las variables de entorno definidas.
Otras variables de entorno son las de CGI, que están ahí sin importar si PHP se está ejecutando como un módulo del
servidor o como un intérprete CGI.

Variables de PHP
Estas variables son creadas por el propio PHP.
argv
Array de argumentos pasados al script. Cuando el script se ejecuta desde la línea de comandos, esto da un acceso, al estilo de C, a los parámetros pasados en línea de comandos. Cuando se le llama mediante el método GET, contendrá la cadena de la petición.
argc
Contiene el número de parámetros de la línea de comandos pasados al script (si se ejecuta desde la línea de
comandos).
PHP_SELF
El nombre del fichero que contiene el script que se esta ejecutando, relativo al directorio raíz de los documentos. Si
PHP se está ejecutando como intérprete de línea de comandos, esta variable no está disponible.
HTTP_COOKIE_VARS
Un array asociativo de variables pasadas al script actual mediante cookies HTTP. Sólo está disponible si el
seguimiento de variables ha sido activado mediante la directiva de configuración track_vars o la directiva
<?php_track_vars?>.
HTTP_GET_VARS
Un array asociativo de variables pasadas al script actual mediante el método HTTP GET. Sólo está disponible si
–variable tracking– ha sido activado mediante la directiva de configuración track_vars o la directiva
<?php_track_vars?>.
HTTP_POST_VARS
Un array asociativo de variables pasadas al script actual mediante el método HTTP POST. Sólo está disponible si
–variable tracking– ha sido activado mediante la directiva de configuración track_vars o la directiva
<?php_track_vars?>.
Ambito de las variables
El ámbito de una variable es el contexto dentro del que la variable está definida. La mayor parte de las variables PHP sólo
tienen un ámbito simple. Este ámbito simple también abarca los ficheros incluidos y los requeridos. Por ejemplo:
$a = 1;
include "b.inc";
Aquí, la variable $a dentro del script incluido b.inc. De todas formas, dentro de las funciones definidas por el usuario
aparece un ámbito local a la función. Cualquier variables que se use dentro de una función está, por defecto, limitada al ámbito local de la función. Por ejemplo:
$a = 1; /* ámbito global */
Function Test () {
echo $a; /* referencia a una variable de ámbito local */
}
Test ();

Este script no producirá salida, ya que la orden echo utiliza una versión local de la variable $a, a la que no se ha asignado ningún valor en su ámbito. Puede que usted note que hay una pequeña diferencia con el lenguaje C, en el que las variables globales están disponibles automáticamente dentro de la función a menos que sean expresamente sobreescritas por una definición local. Esto puede causar algunos problemas, ya que la gente puede cambiar variables globales inadvertidamente.
En PHP, las variables globales deben ser declaradas globales dentro de la función si van a ser utilizadas dentro de dicha
función. Veamos un ejemplo:
$a = 1;
$b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;
}
Sum ();
echo $b;
El script anterior producirá la salida "3". Al declarar $a y $b globales dentro de la función, todas las referencias a tales
variables se referirán a la versión global. No hay límite al número de variables globales que se pueden manipular dentro de
una función.
Un segundo método para acceder a las variables desde un ámbito global es usando el array $GLOBALS propio de PHP3.
El ejemplo anterior se puede reescribir así:
$a = 1;
$b = 2;
Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum ();
echo $b;
El array $GLOBALS es un array asociativo con el nombre de la variable global como clave y los contenidos de dicha
variable como el valor del elemento del array.
Otra característica importante del ámbito de las variables es la variable static. Una variable estática existe sólo en el ámbito local de la función, pero no pierde su valor cuando la ejecución del programa abandona este ámbito. Consideremos el siguiente ejemplo:
Function Test () {
$a = 0;
echo $a;
$a++;
}
Esta función tiene poca utilidad ya que cada vez que es llamada asigna a $a el valor 0 y representa un "0". La sentencia
$a++, que incrementa la variable, no sirve para nada, ya que en cuanto la función termina la variable $a desaparece. Para
hacer una función útil para contar, que no pierda la pista del valor actual del conteo, la variable $a debe declararse como
estática:
Function Test () {
static $a = 0;
echo $a;
$a++;
}

Ahora, cada vez que se llame a la función Test(), se representará el valor de $a y se incrementará.
Las variables estáticas también proporcionan una forma de manejar funciones recursivas. Una función recursiva es la que
se llama a sí misma. Se debe tener cuidado al escribir una función recursiva, ya que puede ocurrir que se llame a sí misma indefinidamente. Hay que asegurarse de implementar una forma adecuada de terminar la recursión. La siguiente función
cuenta recursivamente hasta 10, usando la variable estática $count para saber cuándo parar:
Function Test () {
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
Test ();
}
$count-;
}
Variables variables
A veces es conveniente tener nombres de variables variables. Dicho de otro modo, son nombres de variables que se pueden
establecer y usar dinámicamente. Una variable normal se establece con una sentencia como:
$a = "hello";
Una variable variable toma el valor de una variable y lo trata como el nombre de una variable. En el ejemplo anterior, hello,
se puede usar como el nombre de una variable utilizando dos signos de dólar. p.ej.
$$a = "world";
En este momento se han definido y almacenado dos variables en el árbol de símbolos de PHP: $a, que contiene "hello", y
$hello, que contiene "world". Es más, esta sentencia:
echo "$a ${$a}";
produce el mismo resultado que:
echo "$a $hello";
p.ej. ambas producen el resultado: hello world.
Para usar variables variables con arrays, hay que resolver un problema de ambigüedad. Si se escribe $$a[1] el intérprete necesita saber si nos referimos a utilizar $a[1] como una variable, o si se pretendía utilizar $$a como variable y el índice
[1] como índice de dicha variable. La sintaxis para resolver esta ambiguedad es: ${$a[1]} para el primer caso y ${$a}[1]
para el segundo.
Variables externas a PHP
Formularios HTML (GET y POST)
Cuando se envía un formulario a un script PHP, las variables de dicho formulario pasan a estar automáticamente
disponibles en el script gracias a PHP. Por ejemplo, consideremos el siguiente formulario:

Ejemplo 7-1. Variables de formulario simples
<form action="foo.php3" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>
Cuando es enviado, PHP creará la variable $name, que contendrá lo que sea que se introdujo en el campo Name: del
formulario.
PHP también maneja arrays en el contexto de variables de formularios, pero sólo en una dimensión. Se puede, por ejemplo, agrupar juntas variables relacionadas, o usar esta característica para recuperar valores de un campo select input múltiple:
Ejemplo 7-2. Variables de formulario más complejas
<form action="array.php" method="post">
Name: <input type="text" name="personal[name]"><br>
Email: <input type="text" name="personal[email]"><br>
Beer: <br>
<select multiple name="beer[]">
<option value="warthog">Warthog
<option value="guinness">Guinness
<option value="stuttgarter">Stuttgarter Schwabenbräu
</select>
<input type="submit">
</form>
Si la posibilidad de PHP de track_vars está activada, ya sea mediante la opción de configuración track_vars o mediante la directiva <?php_track_vars?>, las variables enviadas con los métodos POST o GET también se encontrarán en los arrays asociativos globales $HTTP_POST_VARS y $HTTP_GET_VARS.
IMAGE SUBMIT variable names Cuando se envía un formulario, es posible usar una imagen en vez del botón submit estándar con una etiqueta como:
<input type=image src="image.gif" name="sub">
Cuando el usuario hace click en cualquier parte de la imagen, el formulario que la acompaña se transmitirá al servidor con dos variables adicionales, sub_x y sub_y. Estas contienen las coordenadas del click del usuario dentro de la imagen. Los más experimentados puede notar que los nombres de variable enviados por el navegador contienen un guión en vez de un subrayado (guión bajo), pero PHP convierte el guión en subrayado automáticamente.
Cookies HTTP PHP soporta cookies de HTTP de forma transparente tal y como están definidas en en las Netscape’s Spec (http://www.netscape.com/newsref/std/cookie_spec.html). Las cookies son un mecanismo para almacenar datos en el navegador y así rastrear o identificar a usuarios que vuelven. Se pueden crear cookies usando la función SetCookie(). Las cookies son parte de la cabecera HTTP, así que se debe llamar a la función SetCookie antes de que se envíe cualquier salida al navegador. Es la misma restricción que para la función Header(). Cualquier cookie que se reciba procedente del cliente será convertida automáticamente en una variable de PHP como con los datos en los métodos GET y POST.
Si se quieren asignar múltiples valores a una sola cookie, basta con añadir [] al nombre de la. Por ejemplo:
SetCookie ("MyCookie[]", "Testing", time()+3600);

Nótese que una cookie reemplazará a una cookie anterior que tuviese el mismo nombre en el navegador a menos que el camino (path) o el dominio fuesen diferentes. Así, para una aplicación de carro de la compra se podría querer mantener un contador e ir pasándolo. P.ej.
Ejemplo 7-3. SetCookie Example
$Count++;
SetCookie ("Count", $Count, time()+3600);
SetCookie ("Cart[$Count]", $item, time()+3600);

Variables de entorno
PHP hace accesibles las variables de entorno automáticamente tratándolas como variables normales.
echo $HOME; /* Shows the HOME environment variable, if set. */
Dado que la información que llega vía mecanismos GET, POST y Cookie crean automáticamente variables de PHP,
algunas veces es mejor leer variables del entorno explícitamente para asegurarse de que se está trabajando con la versión correcta. La función getenv() se puede usar para ello. También se puede asignar un valor a una variable de entorno con la función putenv().
Puntos en los nombres de variables de entrada Típicamente, PHP no altera los nombres de las variables cuando se pasan a un script. De todas formas, hay que notar que el
punto no es un carácter válido en el nombre de una variable PHP. Por esta razón, mire esto:
$varname.ext; /* nombre de variable no válido */
Lo que el intérprete ve es el nombre de una variable $varname, seguido por el operador de concatenación, y seguido por la prueba (es decir, una cadena sin entrecomillar que no coincide con ninguna palabra clave o reservada conocida) ’ext’.
Obviamente, no se pretendía que fuese este el resultado.
Por esta razón, es importante hacer notar que PHP reemplazará automáticamente cualquier punto en los nombres de
variables de entrada por guiones bajos (subrayados).
Determinando los tipos de variables Dado que PHP determina los tipos de las variables y los convierte (generalmente) según necesita, no siempre resulta obvio de qué tipo es una variable dada en un momento concreto. PHP incluye varias funciones que descubren de qué tipo es una
variable. Son gettype(), is_long(), is_double(), is_string(), is_array(), y is_object().

Paginas del Manual

01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11

Opine en este Foro

 

 

Documento sin título
 
Documento sin título
Av. Petith Thouars 1255 Of. 302 Lima - Perú
Teléfonos: 2662540 / 7959969
Publicidad:
ventas@encuentraperu.com
Peruanos en el exterior, Peruanos en EE.UU, Peruanos en Argentina, Peruanos en colombia, Peruanos en Ecuador, Peruanos en Mexico, Peruanos en Venezuela, peruanos en España,Peruanos en Brazil, Peruanos en Bolivia, Peruans en Dinamarca, Peruanos en Dinamarca, Peruanos en Bulgaria, Peruanos en Bélgica, Peruanos en Chile, Peruanos en China, Peruanos en corea, Peruanos en Francia, Peruanos en Grecia, Peruanos en Holanda, Peruanos en Inglaterra, Peruanos en Japon, Peruanos en Inglaterra, Peruanos en Egipto, Peruanos en Camerun, Peruanos en Austria, Peruanos Millonarios, Chicas lindas del perú en el extranjero, Doctores del Peru en el Extranjero, Peruanos Deportistas en el Extrabjero, Fisicoculturistas Peruanos en el Extranjero, Musicos peruanos en el Extranjero, modelos Peruanos en el Exterior, Poetas Peruanos en el Exterior, Chefs peruanos en el Exterior, Como hacer un proyecto en el Exterior, Organizaciones peruanas en el Exterior, Ultimas noticias del Perú, Lo que suce den el Mundo y en el Perú, Quejas de peruanos en el Extranjero, Club de Peruanos en el Extranjero, Embajadas del Perú en el Exterior, Estas en el Exterior Reunate con mas peruanos, Peruanos por todo el Mundo, Manuales, Manuales Practicos, Videos de Peruanos, Fotos de Chicas, fotos de peruanos, Conosca a Gente del perú.