Posts Tagged ‘PHP’

Variables en PHP

marzo 7, 2009

¿Qué es una variable?

Una variable es una estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador con determida longitud.

Por ejemplo suponiendo que tenemos una variable llamada hora, esta variable con cada segundo que pase varía su valor.

En php como en todo lenguaje de programación podemos encontrar básicamente dos tipos de variable unas las variables de tipo global (variables globales) y las de tipo local (variables locales).

¿En que se diferencian?

Imáginemos que tenemos un código de indentificación que podemos utilizar en todos los países del mundo (Global), sin embargo en cada país nos dan un código adicional que solo lo podemos usar en ese país (Local).

Las variables funcionan igual, las globales se nos es permitido usar en todo nuestro programa es decir cualquier función puede acceder a dichas variables para leer y escribir en ellas, se declara generalmente fuera de cualquier función, las variables de tipo local solo puede ser utilizada por la función en donde fue declarada.

En php no hace falta declarar una variable antes de su uso, ni establecer su tipo (son 5 tipos: Integer, Double, String, Array y Object). Su nombre puede ser una combinacion de letras (a-Z), números y guiones bajos (nos e recomienda los acentos ni caracteres especiales, aunque pueden funcionar correctamente), precedidos con el signo $. El primer carácter no puede ser un número, y php diferencia entre mayusculas y minúsculas, además una variable no se puede llamar igual que una palabra reservada por php. ejemplo $var es una variable pero no es igual a $Var

Para utilizar una variable basta con asignarle un valor, usando para ello el operador =
Si el valor es una cadena, necesita ir entrecomillado.

Ahora bien sigamos este ejemplo:

<?php
$variable1 = "HOLA MUNDO";
echo $variable1;
?>

Esto nos mostrará lo siguiente:

HOLA MUNDO

En la línea dos hemos declarado la variable llamada variable1 a la cual le hemos asigando como valor una cadena de caracteres (tipo String), para declarar este tipo de dato se hace entre comillas de este modo: “cadena” y se termina con un; indicando que acabo la instrucción.

En la línea tres con echo lo que hacemos es motsrar la variable1 pero como la variable1 contiene el valor: HOLA MUNDO, lo qeu se muestra es su valor.

¿Pero en qué momento es variable nuestra variable?

Observemos este código

<?php
$variable1 = "España";    // el valor de nuestra variable1 es España
$variable1 = "México";    // el valor de nuestra variable1 es México
$variable1 = "Perú";      // el valor de nuestra variable1 es Perú
echo $variable1;
&#91;/sourcecode&#93;

Lo que imprimirá será: Perú, ya que este es el último valor asignado a nuestra variable fue ese valor, con esto demostramos que el contenido de una variable es cambiante.

<strong>¿Qués es lo que pasa con otros tipos de variables?</strong>

Con otros tipos de variables el meacanismo es idéntico:


<?php
$int = 1;           // integro
$doub = 1,5;        // double
$string1 = "1";     // string
$string2 = "uno";   // string
echo $int;
echo $doub;
echo $string1;
echo $string2;
?>

Tipado (casting) de variables

Como se menciono, a diferencia de otros lenguajes, al declarar una variable no tenemos que indicar a que tipo pertenece. Php lo hará por nosotros de acuerdo con su contenido y el contexto. Aunque no es necesario, podemos especificar el tipo de la variable, o forzar su conversion. Forzar un tipo de variable puede ser muy util, por ejemplo para validar la entrada de datos por usuarios desde un formulario.

<?php
$cadena="5";         //esto es una cadena
$entero=3;           //esto es un entero
echo $cadena+$entero //daria el resultado 8
$mivar = "3";        // $mivar es tipo string
$mivar = 2 + $mivar; // automaticamente se convierte a tipo integer
// $mivar ahora vale 5
$mivar = (string)123;// creamos $mivar como cadena
settype($mivar, "double"); // forzamos su cambio a tipo double
// el cambio forzado afecta al valor de la
// variable:
// $mivar = 3.5;
// $mivar = (integer)$mivar; -> valor 3
// $mivar = (boolean)$mivar; -> valor 1
?>

Averiguando el tipo de una variable

Si necesitamos saber a que tipo pertenece una variable podemos usar la función gettype():

<?php
$mivar = "123";
echo gettype($mivar); // string
$mivar = 123;echo gettype($mivar); // integer?>

Chequeando tipos concretos

Si lo que necesitamos es saber si se trata de un tipo concreto de variables, podemos usar una funcion ad hoc: Todas ellas tomas como parámetro el nombre de la función a chequear, y devuelven verdadero o falso

Un dato importante a tener en cuenta es que una variable, sea cual sea su tipo, si es pasada via GET o POST automáticamente se convierte en tipo string. Por ello no podremos utilizar is_integer, por ejemplo, sino is_numeric,, que no indaga acerca del tipo de variable, sino acerca de los caracteres que la componen.

* is_array()
* is_bool()
* is_double()
* is_float()
* is_int()
* is_integer()
* is_long()
* is_null()
* is_numeric()
* is_object()
* is_real()
* is_resource()
* is_scalar()
* is_string()

valores por referencia

A partir de php 4 ademas de pasar un valor a una variable por asignación, podemos pasarselo por referencia

Para ello creamos una nueva variable que referencia ( “se convierte en un alias de” o “apunta a”) la variable original. Los cambios a la nueva variable afectan a la original, y viceversa.

Para asignar por referencia, simplemente se antepone un ampersand (&) al comienzo de la variable cuyo valor se está asignando.

<?php
$a = 5;         // $a vale 5
$b = &$a;       // $b vale 5
$b = $b + 3;    // $b vale 8. $a TAMBIEN vale 8 ahora.
/* los valores serán $a = 8 y $b = 8; */
?>

Variables constantes

Son aquellas cuyo valor no va a cambiar a lo largo de la ejecución del script. Para asignarles un valor se usa la función define()

<?php
define ("AUTOR_EMAIL","blah@miemail.com");
echo AUTOR_EMAIL; // imprime blah@miemail.com
// observa que las variables constantes
// no necesitan del signo $
// Las constantes NO pueden ir entrecomilladas.
?>

Podemos utilizar la funcion defined() para chequear si una constante esta definida o no.

Por último, PHP ofrece diversas constantes predefinidas:

<?php
echo __FILE__ ."";   // nombre del archivo
echo __LINE__ ."";   // numero de linea de codigo
echo PHP_VERSION.""; // numero de version php
echo PHP_OS ."";     // sistema operativo
echo TRUE."";        // valor verdadero (1)
echo FALSE."";       // valor falso (0 o cadena vacia)
echo NULL."";        // sin valor
?>
[/sourcecode language='php']

<strong>Variables de variables</strong>

Podemos reutilizar el valor de una variable como nombre de otra variable


<?php
$var = "ciudad";   // tenemos una variable var, valor ciudad
$$var = "madrid";  // creamos una variable llamada ciudad, con
// valor madrid.
// echo $ciudad nos daría "madrid".
?>

Debo mencionar que una gran parte de este Artículo no a sido creado por mí, lo eh copiado de ignside.net. pero eh tratado de agregar en lo que eh podido ciertos detalles.

Anuncios

Mi segundo PHP

marzo 7, 2009

Ahora pondre unos detalles más sobre php, lo que hicimos en el pasado post sobre php, fue solo mostrar una cadena de texto en el navegador, contaré que no echo no es la única instrucción que permite esto, la función print tambien lo puede hacer de estas dos formas:

<?php
print "HOLA MUNDO";
print "<br/>"; // es una etiqueta html
print ("HOLA MUNDO");
?>

Que de nuevo tenemos en este código, en la segunda línea la función print se muestra como una función es decir, ponemos el nombre de la función y luego entre paréntesis lo que queremos que se imprima.

en la tercera línea hacemos un salto de linea con la etiqueta <br/> que es una etiqueta que nos permite, para mencionar algo sobre ella, funciona como la etiqueta img, al no tener contenido no es necesario hacer esto: <br></br> sino que directamente se puede invocar como lo acabamos de hacer en el ejemplo anterior (<br/>).

En la misma línea así como en html se utilizan los tags para indicar que lo que irá dentro derá un comentarero, en php si se hará un comentareo en una sola linea basta con dos slash //, si en caso contrario se quiere comentar más de una línea se utilizan los delimitadores /* aca el comentareo*/.

En la cuarta línea la función print funciona idénticamente que echo.

Este código debe mostrar en el navegador lo siguiente:

HOLA MUNDO

HOLA MUNDO

Si eliminamos la tercera linea (la que nos permite el salto de línea), el navegador debería mostrar esto:

HOLA MUNDOHOLA MUNDO

¿Pero entonces que diferencia encontramos con hecho?

echo no es una función es solo una instrucción es decir no tiene la capacidad de devolvernos un valor (esto lo comentaré más adelante), esta capacidad si la tiene print, por otro lado echo es mucho más rápido de ejecutar y además echo esta más popularizado.

Instalando Apache, PHP, MySQL, PhpMyAdmin

marzo 7, 2009

Lamento no poder crear este tutorial desde cero, pero ya es bien tarde y se acerca la hora de dormir, además conseguí un par de sitios web donde describen muy bien los pasos a seguir para instalar nuestro servidor web.

Ahora bien, si queremos instalarlo en windows podemos seguir este muy buen tutorial, para windows tambien contamos con programas como WAMP (windows, apache, mysql, php) que con un doble clic y unos cuantos next dejan instalado nuestro servidor web en nuestro windows.

Si lo queremos instalar en linux (cualquier distribución) este muy compelto tutorial, si lo que queremos es instalarlo especificamente en ubuntu, podemos seguir este tutorial, para quien use opensuse encontre este tutorial (es algo antiguo pero puede servir) o este otro (algo más moderno), si deseas para fedora, Gentoo, slackware, este tutorial esta más que interesante, este tema esta algo extendido, asi que si usas cualquier otra distribución con un simple buscar en google encontrarás un sin fin de respuestas.

Yo soy usuario de Ubuntu y bueno para quién le interese hace un poco de tiempo cree un script al que solo hay que darle los permisos de ejecución, y automáticamente instalara el servidor web, (solo se tiene que configurar el archivo config.ini del phpmyadmin).

Pueden descargar el Script desde aquí. (el archivo esta en formato odt, lo pueden revisar y ver que el código es diáfano, para ejecutarlo cambien la extension .odt por la extensión .sh), acá pongo el código de instalación que también srirve a modos de pasos a seguir para instalar el servidor web.


# A continuación borramos lo que exista en el terminal,
# pedimos la introducción de la contraseña del usuario root
# y luego instalamos los paquetes necesarios
clear
echo "Ingresa la contraseña del usuario root"

#instalamos apache2 php5 y mysql-server
sudo apt-get install apache2 php5 mysql-server

# Luego instalamos los paquetes adicionales
sudo aptitude install libapache2-mod-auth-mysql php5-mysql

# Ahora descargamos phpmyadmin, lo descomprimimo y lo movemos hasta la carpeta /var/www
mkdir $HOME/phpmyadmin
cd $HOME/phpmyadmin
wget http://downloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.11.9-all-languages.tar.gz
tar xvzf phpMyAdmin-2.11.9-all-languages.tar.gz
cd /
sudo mv $HOME/phpmyadmin/phpMyAdmin-2.11.9-all-languages /var/www/phpMyAdmin
rm -R $HOME/phpmyadmin

#restauramos los servicios
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/mysql restart
 

Todos los archivos que queremos poner en nuestro server deben estar dentro de la carpeta www (tanto en windos como en linux, la ruta de esta carpeta en linux si se instala como mencione atrás sería /var/www, en windows se encuentra dentro de la carpeta c:/), si no se ha configurado aún el puerto por donde se mostrará apache solo es necesario un htttp://localhost, par apoder ver el archivo de bienvenida de apache: It Works!, se mostrará esto si todo estuvo bien instalado y abriendo el terminal , escribiendo solo mysql ya nos debe salir algo como esto :

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 203
Server version: 5.0.67-0ubuntu6 (Ubuntu)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>

Si tienen alguna duda, solo comenten :D.