Anda di halaman 1dari 83

Indice

Indice.................................................................................................................. 1
Historia del lenguaje PHP.................................................................................... 3
Caractersticas de PHP........................................................................................ 5
Instalacin del Wampserver 3.0 con PHP 7.0......................................................7
Caractersticas del nuevo PHP 7.0.......................................................................8
Otras Caractersticas de PHP 7..........................................................................10
Para tener en cuenta antes de programar en PHP............................................13
Primer programa en PHP................................................................................... 14
Los caracteres de escape, que son y para que se usan....................................15
Comentarios en nuestro cdigo........................................................................16
Variables en PHP............................................................................................... 16
Tipos de variables ms importantes en PHP.....................................................18
Tipos de operadores en PHP.............................................................................. 20
Condicin IF...................................................................................................... 24
El Operador Ternario en PHP............................................................................. 28
La instruccin Switch........................................................................................ 30
Instruccin Break y Default............................................................................... 32
Bucles............................................................................................................... 32
Bucle FOR......................................................................................................... 33
La instruccin WHILE......................................................................................... 34
La instruccin DO WHILE................................................................................... 35
La Instruccin Break en los Bucles....................................................................36
La instruccin Continue en los Bucles...............................................................36
Arrays, Arreglos o Matrices escalares en PHP...................................................37
Array asociativo en PHP.................................................................................... 39
Array Bidimensionales o Multidimiensionales...................................................40
Bucle Foreach.................................................................................................... 42
Funciones en PHP.............................................................................................. 44
Funciones para manipular Variables.................................................................47
Funcin EMPTY.................................................................................................. 48
Funcin ISSET.................................................................................................... 48
Pgina 1 de 83

Funcin IS_INTEGER.......................................................................................... 49
Funcin IS_NUMERIC......................................................................................... 50
Funcin IS_STRING............................................................................................ 50
Funcin IS_ARRAY.............................................................................................. 51
Funciones para cadenas de caracteres.............................................................52
Funcin STRLEN................................................................................................ 53
Funcin SUBSTR................................................................................................ 53
Funcin TRIM..................................................................................................... 54
Funcin STR_REPLACE....................................................................................... 54
Funciones que cambian de mayscula a minscula o viceversa.......................55
Funcin EXPLODE.............................................................................................. 56
Funciones que trabajan con Arrays...................................................................57
Funcin COUNT................................................................................................. 57
Funcin SORT.................................................................................................... 58
Funcion IN_ARRAY............................................................................................. 60
Funciones que trabajan con Fechas y Horas.....................................................61
Funcin Date..................................................................................................... 62
Funciones definidas por el usuario....................................................................63
Funciones definidas por el usuario desde un archivo externo...........................64
Funciones definidas por el usuario con parmetros..........................................64
Funciones definidas por el usuario con parmetros pasados por valor.............65
Funciones definidas por el usuario con parmetros pasados por referencia.....67
Funciones definidas por el usuario con parmetros pasados por defecto.........70
Funciones definidas por el usuario con un nmero variable de parmetros.....71
Enviando informacin con PHP..........................................................................71

Pgina 2 de 83

Historia del lenguaje PHP


PHP tal y como se conoce hoy en da es en realidad el sucesor de un producto
llamado PHP/FI. Creado en 1994 por Rasmus Lerdorf, la primera encarnacin de
PHP era un conjunto simple de ficheros binarios Common Gateway Interface
(CGI) escritos en el lenguaje de programacin C. Originalmente utilizado para
rastrear visitas de su currculum online, llam al conjunto de scripts "Personal
Home Page Tools", ms frecuentemente referenciado como "PHP Tools". Con el
paso del tiempo se quiso ms funcionalidad, y Rasmus reescribi PHP Tools,
produciendo una implementacin ms grande y rica. Este nuevo modelo fue
capaz de interaccionar con bases de datos, y mucho ms, proporcionando un
entorno de trabajo sobre cuyos usuarios podan desarrollar aplicaciones web
dinmicas sencillas tales como libros de visitas. En junio de 1995, Rasmus
public el cdigo fuente de PHP Tools, lo que permiti a los desarrolladores
usarlo como considerasen apropiado. Esto tambin permiti -y anim- a los
usuarios a proporcionar soluciones a los errores del cdigo, y generalmente a
mejorarlo.
En septiembre de ese mismo ao, Rasmus ampli PHP y -por un corto periodo
de tiempo- abandon el nombre de PHP. Ahora, refirindose a las herramientas
como FI (abreviatura de "Forms Interpreter"), la nueva implementacin inclua
algunas de las funciones bsicas de PHP tal y como la conocemos hoy. Tena
variables como las de Perl, interpretacin automtica de variables de
formulario y sintaxis incrustada HTML. La sintaxis por s misma era similar a la
de Perl, aunque mucho ms limitada, simple y algo inconsistente. De hecho,
para embeber el cdigo en un fichero HTML, los desarrolladores tenan que
usar comentarios de HTML. Aunque este mtodo no era completamente bien
recibido, FI continu gozando de expansin y aceptacin como una
herramienta CGI --- pero todava no completamente como lenguaje. Sin
embargo, esto comenz a cambiar al mes siguiente; en octubre de 1995
Rasmus public una versin nueva del cdigo. Recordando el nombre PHP,
ahora era llamado (resumidamente) "Personal Home Page Construction Kit," y
fue la primera versin que presuma de ser, en aquel momento, considerada
como una interfaz de scripts avanzada. El lenguaje fue deliberadamente
diseado para asemejarse a C en estructura, hacindolo una adopcin sencilla
para desarrolladores familiarizados con C, Perl, y lenguajes similares. Habiendo
sido as bastante limitado a sistemas UNIX y compatibles con POSIX, el
potencial para una implementacin de Windows NT estaba siendo explorada.
El cdigo fue completamente rehecho de nuevo, y en abril de 1996,
combinando los nombres de versiones anteriores, Rasmus introdujo PHP/FI.
Esta implementacin de segunda generacin comenz realmente a desarrollar
PHP desde un conjunto de herramientas dentro de un lenguaje de
programacin de derecho propio. Inclua soporte interno para DBM, mySQL, y
Pgina 3 de 83

bases de datos Postgres95, cookies, soporte para funciones definidas por el


usuario, y mucho ms. Ese mes de junio, PHP/FI brind una versin 2.0. Sin
embargo, un interesante hecho sobre esto, es que slo haba una nica versin
completa de PHP 2.0. Cuando finalmente pas de la versin beta en noviembre
de 1997, el motor de anlisis subyacente ya estaba siendo reescrito por
completo.

Aunque vivi una corta vida de desarrollo, continu gozando de un crecimiento


de popularidad en el an joven mundo del desarrollo. En 1997 y 1998, PHP/FI
tena un culto de varios miles de usuarios en todo el mundo. Una encuesta de
Netcraft en mayo de 1998 indic que cerca de 60,000 dominios reportaron que
tenan cabeceras que contenan "PHP", indicando en efecto que el servidor host
lo tena instalado. Este nmero se corresponda con aproximadamente el 1% de
todos los dominios de Internet del momento. A pesar de estas impresionantes
cifras, la maduracin de PHP/FI estaba condenada por limitaciones; mientras
haba varios contribuidores menores, an era desarrollado principalmente por
un individuo.
Ejemplo #1 Ejemplo de Cdigo PHP/FI
<!--include /text/header.html-->
<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
Hey, est usando Netscape!<p>
<!--endif-->
<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
Lo siento, esta entrada no existe<p>
<!--endif exit-->
Bienvenido <!--$user-->!<p>
Le quedan <!--$index:0--> crditos en su cuenta.<p>
<!--include /text/footer.html-->
Tomado de: http://php.net
Fue originalmente diseado en Perl, con base en la escritura de un grupo de
CGI binarios escritos en el lenguaje C por el programador dans-canadiense
Rasmus Lerdorf en el ao 1994 para mostrar su currculum vtae y guardar
Pgina 4 de 83

ciertos datos, como la cantidad de trfico que su pgina web reciba. El 8 de


junio de 1995 fue publicado "Personal Home Page Tools" despus de que
Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.
Dos programadores israeles del Technion, Zeev Suraski y Andi Gutmans,
reescribieron el analizador sintctico (parser en ingls) en el ao 1997 y
crearon la base del PHP3, cambiando el nombre del lenguaje por PHP:
Hypertext Preprocessor. Inmediatamente comenzaron experimentaciones
pblicas de PHP3 y fue publicado oficialmente en junio de 1998. Para 1999,
Suraski y Gutmans reescribieron el cdigo de PHP, produciendo lo que hoy se
conoce como motor Zend. Tambin fundaron Zend Technologies en Ramat Gan,
Israel.

Pgina 5 de 83

Caractersticas de PHP
PHP es un lenguaje de programacin de uso general de cdigo del lado del
servidor originalmente diseado para el desarrollo web de contenido dinmico.
Fue uno de los primeros lenguajes de programacin del lado del servidor que
se podan incorporar directamente en el documento HTML en lugar de llamar a
un archivo externo que procese los datos. El cdigo es interpretado por un
servidor web con un mdulo de procesador de PHP que genera la pgina web
resultante. PHP ha evolucionado por lo que ahora incluye tambin una interfaz
de lnea de comandos que puede ser usada en aplicaciones grficas
independientes. Puede ser usado en la mayora de los servidores web al igual
que en casi todos los sistemas operativos y plataformas sin ningn costo.
PHP se considera uno de los lenguajes ms flexibles, potentes y de alto
rendimiento conocidos hasta el da de hoy [cita requerida], lo que ha atrado el
inters de mltiples sitios con gran demanda de trfico, como Facebook, para
optar por el mismo como tecnologa de servidor.
Fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje
sigue siendo desarrollado con nuevas funciones por el grupo PHP. Este lenguaje
forma parte del software libre publicado bajo la licencia PHP, que es
incompatible con la Licencia Pblica General de GNU debido a las restricciones
del uso del trmino PHP.
PHP es un acrnimo recursivo que significa PHP Pre Hypertext -processor
(inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado
originalmente por Rasmus Lerdorf; sin embargo la implementacin principal de
PHP es producida ahora por The PHP Group y sirve como el estndar de facto
para PHP al no haber una especificacin formal. Publicado bajo la PHP License,
la Free Software Foundation considera esta licencia como software libre.
PHP puede ser desplegado en la mayora de los servidores web y en casi todos
los sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se
encuentra instalado en ms de 20 millones de sitios web y en un milln de
servidores. El enorme nmero de sitios en PHP ha visto reducida su cantidad a
favor de otros nuevos lenguajes no tan poderosos desde agosto de 2005. El
sitio web de Wikipedia est desarrollado en PHP. Es tambin el mdulo Apache
ms popular entre las computadoras que utilizan Apache como servidor web.
El gran parecido que posee PHP con los lenguajes ms comunes de
programacin estructurada, como C y Perl, permiten a la mayora de los
programadores crear aplicaciones complejas con una curva de aprendizaje muy
corta. Tambin les permite involucrarse con aplicaciones de contenido
dinmico sin tener que aprender todo un nuevo grupo de funciones.
Pgina 6 de 83

Cuando el cliente hace una peticin al servidor para que le enve una pgina
web, el servidor ejecuta el intrprete de PHP. ste procesa el script solicitado
que generar el contenido de manera dinmica (por ejemplo obteniendo
informacin de una base de datos). El resultado es enviado por el intrprete al
servidor, quien a su vez se lo enva al cliente.

Mediante extensiones es tambin posible la generacin de archivos PDF, Flash,


as como imgenes en diferentes formatos.
Permite la conexin a diferentes tipos de servidores de bases de datos tanto
SQL como NoSQL tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft
SQL Server, Firebird, SQLite o MongoDB.
PHP tambin tiene la capacidad de ser ejecutado en la mayora de los sistemas
operativos, tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft
Windows, y puede interactuar con los servidores web ms populares que
existen en versin CGI, mdulo para Apache, e ISAPI.
PHP es una alternativa a las tecnologas de Microsoft ASP y ASP.NET (que utiliza
C# y Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a
JSP/Java, CGI/Perl y a Node.js/Javascript. Aunque su creacin y desarrollo se da
en el mbito de los sistemas libres, bajo la licencia GNU, existe adems un
entorno de desarrollo integrado comercial llamado Zend Studio. CodeGear (la
divisin de lenguajes de programacin de Borland) ha sacado al mercado un
entorno de desarrollo integrado para PHP, denominado 'Delphi for PHP. Tambin
existen al menos un par de mdulos para Eclipse, uno de los entornos ms
populares.
Programa Hola mundo con PHP embebido en cdigo HTML:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title> Ejemplo bsico PHP</title>
</head>
<body>
<?php
echo 'Hola mundo';
Pgina 7 de 83

?>
</body>
</html>

Pgina 8 de 83

Instalacin del Wampserver 3.0 con PHP 7.0

Bajar el instalador de este enlace:


https://sourceforge.net/projects/wampserver/files/WampServer
%203/WampServer
%203.0.0/Addons/Php/wampserver3_x64_addon_php7.0.6.exe/download
No se debe de instalar sobre una versin anterior de Wampserver, se debe de
desinstalar la anterior.
Tambin antes de instalar el Wampserver 3.0, debe de instalar el Visual C++
Redistributable for Visual Studio 2015 de aqu:
https://www.microsoft.com/es-ES/download/details.aspx?id=48145

Los dos archivos vcredist_x86.exe y vcredist_x64.exe deben de ser bajados de la


misma pgina, y deben de ser instalados aunque usted haya descargado el
Wampserver de 64 bits y aunque tenga un sistema operativo de 64 bits.

Para ingresar al phpMyAdmin, el usuario es root, sin ninguna contrasea, luego


lo cambia.
Tener en cuenta que en el Wampserver, la carpeta www (en nuestro
localhost) es la que usaremos para nuestros proyectos, donde nuestra url para
llamar a cada proyecto ser localhost/carpetaProyecto/archivo.php

Pgina 9 de 83

Caractersticas del nuevo PHP 7.0


PHP 7 es hasta 2 veces ms rpido
Gracias a que el proyecto PHPNG (PHP Next-Gen) de Zen fue declarado open
source e incorporado al motor de PHP 7, el rendimiento de las aplicaciones que
sean compatibles con esta nueva versin tendrn una ganancia de rendimiento
de entre 25% y 70%, contando con mediciones que indican que un sitio en
WordPress podra ejecutarse incluso un 96% ms rpido; si antes la ejecucin
de un sitio en WordPress requera aproximadamente 9.4 billones de
instrucciones, con el nuevo motor PHPNG solo requerira 2.6 billones, la mejor
parte es que es muy probable que no tengas que cambiar ni una lnea de
cdigo para gozar de las ventajas de esta nueva versin.
Declaraciones de tipo escalar
En PHP 7 se agregaron nuevos tipos de variables que podemos definir que
esperan nuestras funciones, estos son los tipos int, float, bool y string. Estas
pueden ser de tipo coercitivo o estricto. En la primera forma por ejemplo, si
una variable de tipo string recibe un nmero entero, lo intentar tomar como
string, sin embargo si hemos declarado el tipo estricto devolver un error.
Declaraciones de tipo de retorno
Adems de poder declarar que tipos de datos esperamos recibir en nuestras
funciones con la nueva versin, tambin podemos definir qu tipo de datos
debe retornar nuestra funcin, permitindonos an ms control de lo que pasa
dentro de nuestro sistema.
El operador nave espacial <=>
El operador nave espacial se utilizar para comparar dos expresiones y ser la
combinacin de los operadores menor <, mayor > o igual =. La expresin <=>
retornara 0 si los dos valores son iguales, 1 si el valor de la izquierda es mayor
y -1 si el valor de la derecha es el mayor.
Operador de fusin de null
El operador de fusin de null se ha aadido como una ayuda para cuando
hemos necesitado verificar si el contenido de una variable existe antes de
utilizarlo, de este modo lneas de cdigo como: $nombre_usuario =
isset($_GET[usuario]) ? $_GET[usuario] : nadie; en la que verificbamos
primero con la funcin isset() si exista el usuario para utilizarlo y en caso
contrario devolvemos nadie, pasa a convertirse en esto $nombre_usuario =
$_GET[usuario] ?? nadie; donde obviamos el uso del isset() y ahorramos una
validacin.
Pgina 10 de 83

Pgina 11 de 83

Pgina 12 de 83

Otras Caractersticas de PHP 7

1. Enormes Mejoras de Rendimiento


El objetivo principal de PHPNG (PHP 7.0) fue traer mejoras en el rendimiento
que al menos coincidan con lo que ofrece Facebook HHVM.
Zeev Suraski de Zend ha escrito un artculo en el que admiti abiertamente
que toman HHVM como un competidor de (el motor basado en Zend) PHP. Esto
confirma que la liberacin de HHVM y luego el lenguaje Hack de Facebook
desencaden este gran inters de Zend en continuar liderando la
implementacin principal de PHP.
En ese artculo tambin demuestra cunto ha evolucionado la rama PHPNG en
trminos de mejoras en el rendimiento.
2. Motor JIT
Segn Dmitry Stogov de Zend, el inici del desarrollo de PHPNG se inici con la
motivacin de investigar la implementacin de un motor de JIT para el PHP
basado en el Motor Zend.
Un motor JIT puede compilar dinmicamente Zend opcodes en cdigo mquina
nativo que finalmente hara que el cdigo corriera ms rpido la prxima vez
que se ejecutara.
Mientras que la aplicacin de un motor JIT an no se ha incorporado a la rama
PHPNG, Dmitry mencion en mayo que l "invirti una cantidad significativa de
tiempo experimentando con JIT e incluso cre un PoC (nota del traductor: Proof
of Concept, Prueba de Concepto) de un compilador JIT de LLVM transparente
embebido dentro de OPCache".
As que est sin duda en los planes de Zend para permitir traer un motor JIT a
PHP 7, as segn Zeev Suraski esto puede "impulsar el rendimiento a travs del
techo para una ya ultra rpida implementacin".
3. AST: Abstract Syntax Tree
Recientemente Nikita Popov propuso la implementacin de la generacin de un
rbol de sintaxis abstracta (AST) como un paso intermedio para el proceso de
compilacin de PHP.
No es la primera vez Nikita propone la implementacin de un AST como paso
de compilacin. Ya lo haba propuesto en el 2012.

Pgina 13 de 83

Un AST ofrecera varias ventajas que son descritas en sus propuestas,


incluyendo la posibilidad de ms optimizaciones que haran que PHP se
ejecutara an ms rpido.

En la ltima propuesta describe la posibilidad de exponer el AST a las


extensiones de PHP y a las aplicaciones de usuarios. Eso podra abrir espacio
para herramientas ms interesantes como analizadores de cdigo esttico que
a menudo son tiles para detectar errores o posibles optimizaciones a nivel de
cdigo fuente de nuestro cdigo PHP.
Nikita ya proporcion un parche para implementar el soporte AST sobre la rama
PHPNG.
4. Programacin Asincrnica
Esto puede no ser obvio para todos, pero ltimamente, Julien Pauli, uno de los
responsables de las ltimas versiones de PHP, ha estado comentando sobre
refactorizar la capa de multiplexacin de entrada-salida de PHP.
Esto parece ser un paso necesario para implementar un loop de eventos. Un
loop de eventos es parte del cdigo que se encarga de controlar los eventos
relacionados con las operaciones de E/S y otras tareas asincrnicas que pueden
estar pasando en paralelo, como accesos a archivos, redes, bases de datos,
temporizadores, etc.
En trminos ms sencillos, esto permitira a futuras versiones de PHP
implementar fcilmente el soporte para la ejecucin de tareas paralelas dentro
de la misma peticin, impulsando el rendimiento de PHP potencialmente a un
nivel totalmente diferente.
Esto es algo que coment varias veces anteriormente. Una de las ltimas veces
fue en el artculo sobre las mejoras de Facebook Hack.
Por supuesto, no consigues mejoras de rendimiento automticamente con slo
habilitar el soporte para la programacin asincrnica. El nuevo cdigo PHP
debe escribirse de forma tal que aproveche el potencial de la programacin
asincrnica.
A pesar del esfuerzo inicial de Jean Pauli, esto no significa que el soporte nativo
para programacin asincrnico se habilitar en PHP 7.
Sin embargo, puesto que Facebook Hack ya proporciona soporte para
programacin asincrnica en una forma muy elegante, no me sorprendera si
los desarrolladores del ncleo de PHP se movieran ms rpidamente para

Pgina 14 de 83

hacer que la programacin asincrnica en PHP estuviera disponible muy


pronto.

5. Servidor Web Standalone Multi-threading


Esto es algo que no parece estar en los planes para PHP 7 pero es algo que
hara ms escalable a PHP.
Ya se puede ejecutar PHP desde servidores Web multi-threaded como ngynx,
lighttpd o incluso Apache en el modo worker, sin embargo esto no es lo mismo
que tener a PHP corriendo en su propio servidor Web multi-threading.
Un servidor Web multi-threading puede manejar muchas peticiones
simultneas utilizando un mismo pool de memoria, evitando as la prdida de
memoria que ocurre cuando se ejecuta PHP como FastCGI o en Apache en
modo pre-fork.
Tambin permitira a PHP usar una nico pool de conexiones de base de datos,
minimizando as el nmero de conexiones simultneas de base de datos
abiertas durante picos de acceso.
HHVM ya puede funcionar como servidor Web multi-threading independiente
desde los das cuando el proyecto fue llamado compilador HipHop PHP.
Esto permiti a Facebook reducir un poco los servidores necesarios para
manejar la alta carga de accesos que tienen.
A pesar de que ejecutar PHP como un servidor Web multi-threading
independiente no est todava en los planes para PHP 7, ciertamente es algo
que sera bueno tener, al menos para PHP 8.

Pgina 15 de 83

Para tener en cuenta antes de programar en PHP


La funcin bsica del PHP, va a ser producir cdigo HTML.
HTML solo nos ayuda a insertar elementos estticos en una pgina.
Con PHP tenemos por fin la capacidad de analizar diferentes situaciones y
actuar en funcin de los resultados.

Estructura del cdigo PHP


El cdigo PHP que inclumos en nuestra pgina, siempre de de estar entre una
etiqueta de apertura y una de cierre:
<?php ..[Apertura]
?> ..[Cierre]
Todo lo que est contenido entre estas dos etiquetas, debe coincidir con las
reglas de sintaxis de PHP.
Este cdigo es el que ser ejecutado por el intrprete en nuestro servidor, y no
se enva al navegador hasta que no haya sido procesado.
El servidor es el que lo procesa, y entrega al navegador el resultado de su
trabajo.
Siempre, al inicio de nuestro cdigo o en una funcin, debemos de
poner estas dos instrucciones:
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
Elimina los errores que salen en el navegador, los cuales seran una
vulnerabilidad de seguridad de nuestro programa si dejamos que la gente vea
porque falla en determinado momento.
date_default_timezone_set("America/Costa_Rica");
Para realizar clculos de fecha, le agregamos la zona actual de nuestro pas
Costa Rica.

Pgina 16 de 83

Primer programa en PHP


El resultado de nuestro trabajo en el navegador, la mayora de las veces
nuestro cdigo PHP va a estar insertado en el cdigo HTML, en conjunto del

cdigo CSS, o tambin con cdigo Javascript.


Pero tambin puede que un determinado archivo PHP (con extensin .php)
venga con solamente cdigo PHP.
Donde se puede observar que el cdigo PHP puede ir embebido (incrustado) en
cualquier parte del cdigo HTML, as como el cdigo HTML tambin puede ir
embebido en nuestro cdigo PHP y con la funcin echo se puede enviar a
imprimir en pantalla lo que uno necesite.
Y como se dijo anteriormente, al ver nuestro cdigo fuente en la pgina Web,
solamente mostrar el cdigo HTML, el cual ser siempre el resultado de lo que
proces nuestro servidor PHP.

Pgina 17 de 83

Pgina 18 de 83

Las etiquetas de apertura y cierre, pueden trabajar tambin en maysculas <?


PHP . ?>
Tambin de esta otra manera, con etiquetas cortas, si se define en el archivo
php.ini, pero la ms recomendada es la normal, ya que en todos los servidores
de PHP es reconicida.

Los caracteres de escape, que son y para que se usan

Pgina 19 de 83

Son los caracteres que siempre van precedidos por la barra \ , y luego van
acompaados por alguna letra, donde tienen funciones muy diversas: \n =
salto de lnea en php, \t = salto tabulador, todo esto se muestra en el cdigo
fuente del HTML.
Comentarios en nuestro cdigo

Estos comentarios no sern ejecutados por nuestro servidor PHP y no se vern


en nuestro cdigo fuente, y sirven para documentar de una mejor manera
nuestro cdigo y poder hacerlo ms entendible para nosotros o una tercera
persona.
Cdigos de una sola lnea empiezan con las dobles barras inclinadas // y luego
el comentario, tambin sirve de la misma manera con el smbolo #:
//Este es un comentario de una sola lnea
# Este es otro comentario de una sola lnea
Para hacer un comentario de varias lneas, debe de iniciar con /* y finalizar con
*/
/*********************************************************
+ Este es un ejemplo de un comentario de varias lneas.

Pgina 20 de 83

+********************************************************/

Variables en PHP
Uno de los pilares y cimientos de la programacin, lo son las variables, donde
son como una especie de contenedor en el que se almacenar un valor que nos
interesa y lo podremos utilizar cuando lo llamemos.

Reglas para las variables en PHP


Deben iniciar con el smbolo $
El nombre de cada variable, el primer carcter debe de ser una letra o un
guin.
Los nombres pueden llevar letras, nmeros, carcter de subrayado (guin
bajo).
Las variables en PHP son sensibles a las maysculas y minsculas, por lo que
se recomienda utilizar solo minsculas y no utilizar , o letras con tildes,
nunca con el signo menos.
Para llamarlas se utiliza su nombre, y no hay que utilizar comilla doble para
escribirlo.
En PHP no es necesario declarar de qu tipo son nuestras variables
(definirlas), o declararlas con valores conocidos, PHP usa variables no tipadas.

En PHP 7 se agregaron nuevos tipos de variables que podemos definir que


esperan nuestras funciones, estos son los tipos int, float, bool y string. Estas
pueden ser de tipo coercitivo o estricto. En la primera forma por ejemplo, si
una variable de tipo string recibe un nmero entero, lo intentar tomar como
string, sin embargo si hemos declarado el tipo estricto devolver un error.

Pgina 21 de 83

Si no se definen de manera estricta como ya en PHP 7.0 se puede hacer, las


variables se declaran y se definen de manera automtica cuando le asignamos
un valor.

Pgina 22 de 83

Tipos de variables ms importantes en PHP


Booleanos
Solamente admiten dos tipos de dato: SI o NO, Falso o Verdadero, True o False,
0 o 1.

Nmeros (enteros y decimales)


Podemos usar en nuestras variables, nmeros enteros, positivos o negativos, y
emplearlos en operaciones matemticas, donde para separar los decimales,
utilizaremos el punto y no la coma.

Pgina 23 de 83

Matrices o Arrays
Son unas estructuras que nos permiten agregar ms de un valor a una sola
variable.
Se caracteriza por tener una clave o nmero de ndice, el cual identifica a cada
uno de sus valores.

Cadenas
Una variable tambin puede guardar caracteres, y es posible realizar ciertas
operaciones con ellos.

Pgina 24 de 83

Tipos de operadores en PHP


Permiten realizar operaciones aritmticas, y adems manipular los contenidos
que nos ofrecen las variables.
Operadores de concatenacin:
Se usa para unir valores distintos como el punto (.)

Operadores aritmticos:
Sirven para realizar operaciones matemticas con las variables.

Pgina 25 de 83

Pgina 26 de 83

Operadores de asignacin:
El principal es el signo igual = donde asigna el valor a una variable.

Luego tenemos otro tipo de operadores, tales como:


+= Suma el valor de la derecha, al valor de la variable de la izquierda y lo
asigna a la variable.
-= Resta el valor de la derecha, al valor de la variable de la izquierda y lo
asigna a la variable.
*= Multiplica el valor de la izquierda con el valor de la derecha y lo asigna a la
variable.
/= Divide el valor de la izquierda con el valor de la derecha y lo asigna a la
variable.
%= Calcula el resto de una divisin con la variable de la derecha y el valor de
la izquierda y lo asigna a la variable (mdulo es lo que sobra luego de dividir
dos nmeros).
.= Concatenacin y asignacin del valor de la derecha con el de la izquierda.
Para concatenar cadenas, utilizamos el operador punto.
Se pueden utilizar los operadores habituales, suma, resta, divisin,
multiplicacin y mdulo o resto.
Para incrementar el valor de uno en uno se usa ++ y para decrementar -Pgina 27 de 83

++$a o $a++ incrementa en uno $a += 2 incrementa de dos en dos


--$a o $a-- decrementa en uno $a -= 2 decrementa de dos en dos
$u = pow($X,$y); Potencia de una variable
$w = $X ** $y; Potencia de una variable en PHP 5.6 y 7.0

Depende de donde se coloque el resultado, el clculo puede cambiar:


echo "<br>".++$X; // Primero incrementa y luego se imprime en pantalla
echo "<br>".$W++; // Primero se muestra en pantalla, y se incrementa
echo "<br>$Y"; // Se muestra despus del incremento

Tambin tenemos operadores lgicos de comparacin:

Comparador de igualdad == , != o <> Diferente de , === Idntico


> Mayor que , >= mayor o igual que , < Menor que , <= Menor o igual que
Comparacin de cadenas
Se consideran menores los que vienen en orden alfabtico
Las minsculas son mayores que las maysculas

Pgina 28 de 83

Y todos los nmeros son menores a cualquier letra

As como operadores lgicos AND, OR , NOT , && , || , = :

Sirven para trabajar haciendo varias comparaciones combinando los posibles


valores que pudiesen tener estas:
(AND && se deben de cumplir todas las condiciones) (OR || Solo se debe de
cumplir una vez)
(XOR Si una comparacin es cierta, la otra debe ser falsa)
Condicin IF

Pgina 29 de 83

Pgina 30 de 83

Pgina 31 de 83

Pgina 32 de 83

Sintaxis de condicin IF

Establece que instrucciones se ejecutarn en el caso de que no se cumpla la


condicin
establecida por el IF, con else if o elseif evala de nuevo otra condicin
y se utiliza cuando no hay respuesta verdadera en el IF
Con el orden IF... elseif... elseif... elseif... else...

Pgina 33 de 83

El Operador Ternario en PHP


El operador ternario nos ahorra mucho tiempo en la escritura de nuestro cdigo a la vez
que simplifica el mismo. A primera vista puede parecer muy confuso pero despus de
entender su lgica nos damos cuenta de que es bastante simple y fcil de implementar.

Pgina 34 de 83

El operador ternario evala una condicin y retorna un valor dependiendo si la


condicin es verdadera (true) o falsa (false).

if (condicin) {
variable = valor-cuando-es-verdadera;
} else {
variable = valor-cuando-es-falsa;
}

Utilizando el operador ternario se simplifica de esta manera:


variable = (condicin) ? valor-cuando-es-verdadera : valor-cuando-es-falsa;
Un ejemplo prctico:
<?php
if (date('G') < 12) {
$mensaje = 'Buenos das';
} else {
$mensaje = 'Buenas tardes';
}
echo $mensaje;
?>
Aplicando el operador ternario:
<?php
$mensaje = (date('G') < 12) ? 'Buenos das' : 'Buenas tardes';
echo $mensaje;
?>

Pgina 35 de 83

Ms simplificado:

<?php
echo (date('G') < 12) ? 'Buenos das' : 'Buenas tardes';
?>

La instruccin Switch

Pgina 36 de 83

Se requiere de una expresin que se evaluar por un valor, cuando se cumpla


en una
expresin, se ejecutar el cdigo, y dejar de evaluar hasta la sentencia break.

Pgina 37 de 83

Instruccin Break y Default

Bucles

Pgina 38 de 83

Bucle FOR
Sintaxis:

Donde indica su primer argumento desde donde inicia, luego hasta donde
termina , y siempre con una condicin, por ltimo indicar un incremento o
decremento.

Pgina 39 de 83

Programa que hace una tabla HTML:

La instruccin WHILE

Pgina 40 de 83

La instruccin DO WHILE

El cdigo se ejecuta al menos una vez, hasta que no cumpla la condicin que
se evala al final.
Pgina 41 de 83

La Instruccin Break en los Bucles

Ejemplo:

La instruccin Continue en los Bucles

Pgina 42 de 83

Ejemplo:

Arrays, Arreglos o Matrices escalares en PHP

Ejemplo:

Pgina 43 de 83

Otra manera de llenar un Array:

Para llamar los elementos de un array:

Pgina 44 de 83

Array asociativo en PHP

Ejemplo:

Pgina 45 de 83

Array Bidimensionales o Multidimiensionales

Pgina 46 de 83

Ejemplo:

Otro ejemplo:

Pgina 47 de 83

Bucle Foreach

Sintaxis para indices:

Pgina 48 de 83

Sintaxis para claves:

Ejemplo 1:

Pgina 49 de 83

Ejemplo 2:

Funciones en PHP

Pgina 50 de 83

Sintaxis:

Pgina 51 de 83

Tipos de funciones:

Pgina 52 de 83

Funciones para manipular Variables


Para conocer la estructura de una funcin, se debe primero conocer para que
nos sirve, que valores devuelve y como se construye.

Pgina 53 de 83

Funcin EMPTY

Funcin ISSET

Ejemplo:
Pgina 54 de 83

Funcin IS_INTEGER

Pgina 55 de 83

Funcin IS_NUMERIC

Funcin IS_STRING

Pgina 56 de 83

Funcin IS_ARRAY

Algunos ejemplos:

Pgina 57 de 83

Funciones para cadenas de caracteres

Pgina 58 de 83

Funcin STRLEN

Funcin SUBSTR

Pgina 59 de 83

Funcin TRIM

Funcin STR_REPLACE

Pgina 60 de 83

Funciones que cambian de mayscula a minscula o


viceversa

Pgina 61 de 83

Funcin EXPLODE

Pgina 62 de 83

Funciones que trabajan con Arrays

Funcin COUNT

Pgina 63 de 83

Funcin SORT

Pgina 64 de 83

Con sort_natural o sort_flag_case se ordena de manera natural y que no


sean sensitivos a maysculas o minsculas

Pgina 65 de 83

Funcion IN_ARRAY

Pgina 66 de 83

Funciones que trabajan con Fechas y Horas

Pgina 67 de 83

Funcin Date

Ejemplo:

Pgina 68 de 83

Funciones definidas por el usuario

Ejemplo:

Pgina 69 de 83

Funciones definidas por el usuario desde un archivo


externo
Primero se hacen las funciones en un archivo php externo con las funciones a
necesitar

Luego se incluyen en los archivos que vamos a necesitar con el comando


include(NombreFuncion); y despus se llaman ( NombreFuncion(); )

Funciones definidas por el usuario con parmetros

Pgina 70 de 83

Funciones definidas por el usuario con parmetros


pasados por valor

Se crea:

Y se llama, pero colocando el valor que necesitemos


Pgina 71 de 83

Pgina 72 de 83

Ejemplo de funcin con parmetros por valor:


Funcin creada

Funcin llamada:

Pgina 73 de 83

Funciones definidas por el usuario con parmetros


pasados por referencia

Cdigo:

Pgina 74 de 83

Ejemplo por valor:

Ejemplo por referencia:

Pgina 75 de 83

Otro ejemplo:

Pgina 76 de 83

Funciones definidas por el usuario con parmetros


pasados por defecto

Ejemplo:

incremento(); .resultado = 1
Pgina 77 de 83

Pgina 78 de 83

Funciones definidas por el usuario con un nmero


variable de parmetros

Enviando informacin con PHP

Pgina 79 de 83

Pgina 80 de 83

Mtodo de pasar datos por una URL:


Pgina que enva los datos.

Pgina que recibe los datos.


Pgina 81 de 83

Pgina 82 de 83