You are on page 1of 51

PHP El Lenguaje de Internet

Proyecto
Definicin del tema. Appserv 2.5.9 PHP 5 MySQL Servidor Web Apache http://appservnetwork.com
13/01/2012 MC. Salvador Contreras H. 2

1. Introduccin: Comparacin entre ASP y PHP

Software propietario

Free Software Multiplataforma Un solo lenguaje: PHP

Plataformas Microsoft Varios lenguajes (C#, C, C++,VB .net)

13/01/2012

MC. Salvador Contreras H.

Caractersticas de PHP

Ms rpido que ASP


Lenguaje ms fcil y potente Soportado en los Principales servidores HTTP Acceso a las principales Bases de Datos Diseo modular, orientado a objetos Licencia abierta
MC. Salvador Contreras H. 4

13/01/2012

Historia y Desarrolladores
Fechas Inicio del desarrollo en otoo de 1994 PHP Versin 1 en primavera 1995 PHP Versin 2 1995-1997 PHP Versin 3 1997-2000 PHP Versin 4 en el segundo trimestre de 2000 Equipo de Desarrollo (195 personas) Zeev Suraski y Andi Gutmans (Israel) Shane Caraveo (Florida) Stig Bakken (Norway) Andrei Zmievski (Lincoln, Nebraska) Sascha Schumann (Dortmund, Germany) Thies C. Arntzen (Hamburg, Germany) Jim Winstead (Los Angeles) Sam Ruby (Raleigh, NC) Rasmus Lerdorf (San Francisco)
13/01/2012 MC. Salvador Contreras H. 5

Estadsticas de uso

Fuente: Netcraft Agosto 2000

Fuente: SecuritySpace.com Septiembre 2000 Informe sobre Mdulos Apache

3,314,634 Dominios, 637,746 Direcciones IP 19,823,296 Dominios analizados PHP instalado en el 16.7% de todos los dominios 1,322,329 Servidores Apache analizados 429,589 (32.49%) PHP 247,642 (18.73%) Frontpage 133,414 (10.09%) mod_perl 111,576 (8.44%) mod_ssl 78,030 (5.90%) OpenSSL 46,404 (3.51%) ApacheJServ
MC. Salvador Contreras H. 6

13/01/2012

Estadsticas de uso

June 2003 Netcraft Report 40,936,076 Domains queried 12,749,410 Domains. 1,317,425 IP addresses PHP installed on 31% of all domains Source: http://www.netcraft.com 13/01/2012 MC. Salvador Contreras H.

Plataformas soportadas
Plataformas (actualidad): UNIX (todas las variantes) Win32 (NT/W95/W98/W2000,2003 server, XP,Vista) Mac OS/2

Servidores: Apache (UNIX,Win32) CGI fhttpd ISAPI (IIS, Zeus) NSAPI (Netscape iPlanet) Java servlet AOLServer Roxen

13/01/2012

MC. Salvador Contreras H.

Bases de datos soportadas


SQL
Adabas D Empress IBM DB2 Informix Ingres Interbase Frontbase mSQL Direct MS-SQL MySQL ODBC Oracle (OCI7,OCI8) PostgreSQL Raima Velocis Solid Sybase Otros dBase filePro (slo lectura) dbm (ndbm, gdbm, Berkeley db)

13/01/2012

MC. Salvador Contreras H.

2. El lenguaje PHP

13/01/2012

MC. Salvador Contreras H.

10

2.1. Extensin de los archivos

.php Indica cdigo PHP.

13/01/2012

MC. Salvador Contreras H.

11

2.2. Delimitadores
<? echo Una forma de delimitar cdigo PHP'; ?> <?php echo 'Segundo forma, la ms usual'; ?> <script language="php"> echo Otro mtodo para delimitar cdigo en PHP; </script> <% echo 'Mtodo igual que ASP'; %>

13/01/2012

MC. Salvador Contreras H.

12

2.2. Delimitadores. Ejemplo.


<html> <body> <?php if ( Hour(time)>20 || Hour(time)<4) { echo Buenas noches.; } else { echo Buenos das.; } ?> </body> </html>

13/01/2012

MC. Salvador Contreras H.

13

2.4. Comentarios
/* Comentarios estilo C. * Pueden extenderse durante varias lneas. */ // Comentarios estilo C++. Hasta fin de lnea.

# Comentarios estilo Perl. Hasta fin de lnea.

13/01/2012

MC. Salvador Contreras H.

14

2.5.1. Variables. Declaracin y Uso.

NO hace falta declararlas Llevan delante el signo del pesos $.


$var1 = 123; $var2 = hola; $var3 = $var1 * 2;

13/01/2012

MC. Salvador Contreras H.

15

2.5.2. Variables. Tipado.


Variables dbilmente tipadas.
$x $x $x $x = = = = Inicializamos como texto; 3; // Entero. 3.14 * $x; // Float. new MiClase(); // Objeto.

13/01/2012

MC. Salvador Contreras H.

16

2.5.2. Variables. Tipado. Conversin automtica.


PHP realiza conversiones automticas de tipo:

$var1 = 123; echo $var1; // Se convierte a string $var1 = 3; $var1 = 2 + $var1; // Se convierte a entero // para realizar la suma

13/01/2012

MC. Salvador Contreras H.

17

2.5.2.

Variables. Tipado. Conversin explcita.

Operador cast:
$y = (string)123;

Cambiar el tipo de una variable:


$y = 12; settype($y, "double");

13/01/2012

MC. Salvador Contreras H.

18

2.5.3. Variables. mbito.

En el cuerpo de un archivo, las variables son GLOBALES al archivo y archivos incluidos. En una funcin, son LOCALES a esa funcin. Dentro de una clase, slo pueden ser accedidas a travs del operador -> sobre el nombre del objeto.

13/01/2012

MC. Salvador Contreras H.

19

2.5.4. Referencias.
Se definen con el carcter &: $alias = &$variable

Se puede eliminar una referencia con la funcin unset(): $a = 1; $b = &$a; unset ($a); // Pero $b sigue valiendo 1

13/01/2012

MC. Salvador Contreras H.

20

2.6. Tipos de datos.


Enteros, en decimal, octal o hexadecimal.
$MiVar = 123;

Punto flotante. Arrays.

$MiVar = 1.3e4;

$MiVar[2] = 123;

Strings.

$MiVar = Cadena de texto\n;

Objetos:
13/01/2012

$MiVar = new MiClase();


MC. Salvador Contreras H. 21

2.6.3. Tipos de datos. Arrays.

$MiArreglo[0] = 1;
$MiArreglo[1] = hola!!; $MiArreglo[] = 3; echo $MiArreglo[2]; // 3

13/01/2012

MC. Salvador Contreras H.

22

2.6.3. Tipos de datos. Arrays (2).


Funcionan como vectores:

$MiArreglo[nombre] = Homer; echo $MiArreglo[0]; // 1 echo $MiArreglo[nombre]; // Homer


Y pueden tener tres dimensiones: $MiOtroArreglo[1][pepe][4] = 3 dimensiones!;

13/01/2012

MC. Salvador Contreras H.

23

2.6.3. Tipos de datos. Arrays (3).


Tambin se pueden definir con el constructor array() : $OtroArregloMas = array( 1, hola, 5); $YOtroArreglo = array( 0 => 1, 1 => hola, 2 => 5, 3 => 8, nombre => Homer );
13/01/2012 MC. Salvador Contreras H. 24

2.6.4. Tipos de datos. Strings. Comillas dobles.


Si se delimitan entre comillas dobles (), se expandir cualquier variable que haya dentro de la cadena. Adems, se pueden incluir ciertas secuencias de escape, al igual que en C:
Secuencia \n \r \t \\ \$ \" \[0-7]{1,3} \x[0-9A-Fa-f]{1,2}
13/01/2012

Significado Nueva lnea Retorno de carro Tabulacin horizontal Barra invertida Smbolo del dlar Dobles comillas Carcter en octal Carcter en hexadecimal
MC. Salvador Contreras H. 25

2.6.4. Tipos de datos. Strings (2). Comillas simples.


Si se delimitan entre comillas simples (), las variables no se expanden y adems las nicas secuencias de escape que se reconocen son \\ y \' (barra invertida y comillas simples.)

13/01/2012

MC. Salvador Contreras H.

26

2.6.4. Tipos de datos. Strings (4).


Para concatenar cadenas se utiliza el operador . : $cad = A esta cadena ; $cad = $cad . le vamos a aadir ms texto.; Se puede acceder a cada carcter como si fuera un array: $cad2 = Tercer carcter de \$cad : $cad[2];

13/01/2012

MC. Salvador Contreras H.

27

2.7. Constantes.
Las constantes se definen con la funcin define(): define(SALUDO, Hola, mundo!); echo La constante SALUDO vale . SALUDO; Las constantes en PHP se diferencian de las variables en que: no llevan el smbolo del pesos delante. puede accederse a ellas desde cualquier parte del cdigo donde han sido definidas, sin restricciones de mbito como en las variables. no pueden ser redefinidas o borradas una vez definidas. slo pueden contener valores escalares, no vectores.
13/01/2012 MC. Salvador Contreras H. 28

2.8. Maysculas y minsculas.


Comportamiento mixto en variables y funciones: En las variables, las maysculas y minsculas IMPORTAN. En los nombres de funciones y palabras reservadas, las maysculas NO IMPORTAN.

13/01/2012

MC. Salvador Contreras H.

29

2.9.1. Operadores aritmticos.


Operacin $a + $b $a - $b $a * $b $a / $b $a % $b Nombre Suma Resta Multiplicacin Divisin Mdulo Resultado Suma de $a y $b. Diferencia entre $a y $b. Producto de $a y $b. Cociente de $a y $b. Resto de la operacin $a/$b.

13/01/2012

MC. Salvador Contreras H.

30

2.9.2. Auto-incremento y auto-decremento.


Operacin Nombre ++$a $a++ --$a $a-Resultado Incrementa $a en 1, y Pre-incremento devuelve $a (incrementado). Devuelve $a, y despus lo Post-incremento incrementa en 1. Decrementa $a en 1, y Pre-decremento despus lo devuelve. Devuelve $a, y despus lo Post-decremento incrementa en 1.

13/01/2012

MC. Salvador Contreras H.

31

2.9.3. Operadores de bits.


Operacin Nombre $a & $b $a | $b $a ^ $b ~ $a $a << $b $a >> $b Resultado Se ponen a 1 los bits que estn a Y 1 en $a y $b. Se ponen a 1 los bits que estn a O 1 en $a o $b. Se ponen a 1 los bits que estn a O Exclusivo 1 en $a o $b, pero no en ambos. Se invierten los bits (se cambian 1 No por 0 y viceversa.) Desplaza $b posiciones a la Desp. Izq. izquierda todos los bits de $a. Desplaza $b posiciones a la Desp. Drch. derecha todos los bits de $a.

13/01/2012

MC. Salvador Contreras H.

32

2.9.4. Operadores lgicos.

Operacin Nombre $a and $b Y $a or $b O $a xor $b ! $a $a && $b $a || $b

Resultado Cierto si $a Cierto si $a Cierto si $a O Exclusivo. ambos. No Cierto si $a Y Cierto si $a O Cierto si $a

y $b son ciertos. o $b es cierto. o $b es cierto, pero no es falso. y $b son ciertos. o $b es cierto.

13/01/2012

MC. Salvador Contreras H.

33

2.9.5. Operadores. Asignacin, igualdad e identidad.


Operacin Nombre Resultado Asigna el valor de una variable o $a = $b Asignacin expresin del segundo trmino a la variable del primer trmino. Compara si el valor de los dos $a == $b Igualdad operandos es el mismo. Compara si el valor es el mismo y, $a === $b Identidad adems, el tipo coincide.

13/01/2012

MC. Salvador Contreras H.

34

2.9.5. Operadores. Asignacin, igualdad e identidad.Ejemplo.

$var1 = 1; $var2 = 1; $var3 = 1; ($var1 == $var2) ($var1 == $var3) ($var1 === $var2) ($var1 === $var3)

// Asignacin

// // // //

Cierto, son iguales Son iguales (tras conversin) Cierto, son idnticas FALSO, el tipo no coincide

13/01/2012

MC. Salvador Contreras H.

35

2.9.5. Operadores. Asignacin, igualdad e identidad. Error.


$var1 = 1; $var2 = 2; if( $var1 = $var2 ) { echo iguales; } else { echo distintas; }

13/01/2012

MC. Salvador Contreras H.

36

2.9.6. Comparaciones.
Operacin Nombre Resultado Cierto si el valor de $a no es $a != $b No igual igual al de $b. Cierto si $a no es igual a $b, o $a !== $b No idntico si no tienen el mismo tipo. Cierto si $a es estrictamente $a < $b Menor que menor que $b. Cierto si $a es estrictamente $a > $b Mayor que mayor que $b. Cierto si $a es menor o igual $a <= $b Menor o igual que que $b. Cierto si $a es mayor o igual $a >= $b Mayor o igual que que $b.
13/01/2012 MC. Salvador Contreras H. 37

2.9.7. Operadores de cadenas.

$a = 1; $b = 2; $c = El resultado de . $a . + . $b . es . $a + $b;

13/01/2012

MC. Salvador Contreras H.

38

2.9.8. Atajos en la asignacin.


+= -= *= /= %= &= ^= .= >>= y <<=

$var1 += 3; $var2 /= 2; $var3 >>= 1;

// $var1 = $var1 + 3; // $var2 = $var2 / 2; // $var3 = $var3 >> 1;

13/01/2012

MC. Salvador Contreras H.

39

2.10.1. Estructuras de control. if elseif else


if (expresin) { comandos } if (expresin) { comandos_cierto } else { comandos_falso }
13/01/2012 MC. Salvador Contreras H. 40

2.10.1. Estructuras de control. if elseif else (2)


if (expresion1) { comandos1 } elseif (expresion2) { comandos2 } elseif (expresion3) { comandos3 } ... else { comandosElse }

13/01/2012

MC. Salvador Contreras H.

41

2.10.2. while y do while


while (expresin) { comandos } do { comandos } while (expresin);

13/01/2012

MC. Salvador Contreras H.

42

2.10.4. for
for (expresin1; expresin2; expresin3) { comandos }

$factorial5 = 1; for ($i = 2; $i <= 5; $i++ ) { $factorial5 *= $i; }

13/01/2012

MC. Salvador Contreras H.

43

2.10.4. for (2)


for ($factorial5 = 1, $i = 2; $i <= 5; $i++ ) { $factorial5 = $factorial5 * $i; } for ($factorial5=1, $i=2; $i<=5; $factorial5*=$i, $i++);

13/01/2012

MC. Salvador Contreras H.

44

2.10.4. for (3). ASP.


ASP <%FOR i=1 TO 100%> <%=MiVar%> <%NEXT%> // PHP <?php for ($i = 1; $i <= 100; $i++) { echo $MiVar; } ?>
13/01/2012 MC. Salvador Contreras H. 45

2.10.5. foreach
foreach (array as variable) { comandos }

$a = array (1, 2, 3, 17); foreach ($a as $v) { print "Valor actual de \$a: $v.\n"; }
// // // //
13/01/2012

Valor Valor Valor Valor

actual actual actual actual

de de de de

$a: $a: $a: $a:

1 2 3 17
46

MC. Salvador Contreras H.

2.10.5. foreach (2)

foreach (array as indice => variable) { comandos }

13/01/2012

MC. Salvador Contreras H.

47

2.10.6. switch
switch (variable) { case valor1: comandos1 case valor2: comandos2 ... case valorN: comandosN default: comandosDefault }

13/01/2012

MC. Salvador Contreras H.

48

2.10.6. switch (2)


switch ($i) { case 1: echo Cdigo del 1; case 2: echo Cdigo del 2; case 3: echo Cdigo del 3; break; case 4: echo Cdigo del 4; }
13/01/2012 MC. Salvador Contreras H. 49

Conclusin
PHP se ha convertido rpidamente en el lenguaje ms usado en el mundo.

Es un lenguaje fcil de aprender.


Tiene miles de funciones considerando las que son desarrolladas por terceros. Existen desarrollos serios en este lenguaje. Utilizado por empresas de todo tipo y tamao.
13/01/2012 MC. Salvador Contreras H. 50

Comentarios

13/01/2012

MC. Salvador Contreras H.

51

You might also like