Usuario:ManuelRomero/PHPBasico/instalaciones/Sintaxis básica

_

Introducción

 * 1) PHP (acrónimo de PHP: Hypertext Preprocessor)
 * 2) es un lenguaje de código abierto
 * 3) muy popular (Podríamos pensar en un estándar?)
 * 4) especialmente adecuado para desarrollo web
 * 5) en desarrollos web
 * 6) Se ejecuta en el servidor web
 * 7) Es incrustrado en HTML.
 * 8) El cliente solo ve el resultado de la ejecución nunca el código

Como escribir PHP 1

 * Dentro de páginas html
 * Nosotros siempre usaremos este estilo para escribir código
 * Lo podemos embeber en código html .... o no.


 * Existen otros estilos menos usados para insertar código php, muchos implican modificar directivas de fichero de configuración
 * Estilo asp

<%   instrucciones %> asp_tags 1
 * Para ello hemos de tener habilitado la etiqueta de php.ini

<?   instrucciones ?> short_open_tag 1
 * Estilo corto
 * Para ello hemos de tener habilitado la etiqueta de php.ini

  instrucciones 
 * Sintaxis para editores HTML
 * Guardamos el fichero con extensión .php
 * Así sabemos que el interprete php tiene que ejecutar código

Dónde poner el código embebido
center|900px
 * Donde queramos que se ejecute algo
 * Se ejecuta como si fuera un solo programa

Como escribir PHP 2

 * Al igual que en javascript podemos escrir en un fichero aparte el código php
 * Posteriormente lo incluimos el fichero explícitamente

Planteando un lenguaje de programación
http://php.net/manual/es/reserved.keywords.php Reglas de construcción Son las ya conocidas, pero veremos como se construyen las expresiones
 * Lexicos
 * Son las palabras reservadas del lenguaje
 * Sintaxis

Habla del significado Estudiaremos alguna peculiaridad como el hecho de que php es un lenguaje muy orientado a expresiones
 * Semántica

Instrucciones en un lenguaje de programación

 * 1) Inicio Fin de bloque
 * 2) Declaraciones (variables, constantes, funciones, clases, objetos, ...)
 * 3) Asignacion
 * 4) Instrución/función de leer del teclado, escribir por pantalla
 * 5) Invocación (llamada a función o método)
 * 6) Estructura de control (selectiva e iterativa)


 * Separando instrucciones
 * Para separar una instrucción de otra usaremos ; (punto y coma)
 * Su uso es obligatorio a execepción de la última instrucción que se puede obviar
 * Esto es por que el fin de código php ?> implica esta instrucción
 * Nosotros lo usaremos siempre
 * Instruccion de inicio fin de bloque

Declaraciones
(Luego veremos funciones, también se puede declarar clases y objetos)
 * 1) De variables
 * 2) De constantes
 * Debemos saber responder a la siguiente pregunta


 * PHP: ''Tipado dinámico'
 * Una características semántica muy, muy importante de php
 * Tipado dinámico
 * Php no es estricto en el tipo de dato de una variable en cuanto que éste puede cambiar durante su vida.
 * En este sentido php es un lenguaje de tipado dinámico, el tipo de la variable depende del valor que tiene en un momento dado o de los operadores que lo afecten.


 * Definir variables
 * En php una variable es definida la primera vez que se usa.
 * El tipo de la variable depende del valor que tenga asignado en un momento dado
 * El identificador de php tiene que empezar por el signo $
 * En php las variables se prepresentan con el signo $ seguido de un carácter de subrayado o una letra y luego letras, números y caracteres de subrayado en cualquier orden y número.
 * PHP y variables

{{Puntos clave|identificador = $[_|a.zA..Z][_|a..zA..Z0..9]*
 * identificador de variables


 * Sensitive case?
 * El lenguaje es sensible a mayúsculas y minúsculas
 * En los identificadores de variables ($edad != $Edad)
 * En nombres de funciones $calculaEdad(1990) != $CalculaEdad(1990)
 * No lo es en palabras reservadas (if o If o IF o iF,...)

Valores y tipos de datos
http://php.net/manual/es/language.types.intro.php
 * En Php tenemos 8 tipos de datos
 * En php tenemos
 * 1) 5 tipos básicos o primitibos (booleano, entero, real, string, NULL)
 * 2) 3 compuestos (array, objeto, recurso)

decimal [0..9]+ hexadecimal 0x[0..f]+ octal 0[0..7]+ binario 0b[01]+
 * tipos básicos
 * 1) entero integer 
 * Posible notación decimal/octal/hexadecimal
 * Todos ellos pueden ser positivos o negativos


 * integer
 * Al imprimirlos con print los veré con valor decimal
 * Para verlos en otras base hay que usar printf o format o utilizar las conversiones dechex o dechex o octdec, .... que veremos a continuación

$frase="Esto es un literal de cadena de caracteres"
 * cadena string
 * real o coma flotante float


 * Booleano boolean


 * NULL
 * un tipo especial que solo tiene ese valor
 * Una variable tiene el valor null
 * 1) Si aún no se le ha asignado valor, o éste se ha destruido (unset
 * 2) Si se le ha asignado explícitametne el valor NULL.


 * Tipos complejos
 * Objetos básico en su aspecto de OOP
 * Matrices o arrays muy muy utilizados
 * Recursos este más que un tipo complejo es un tipo especial que hace referencia a un recurso externo referencia, como una conexión a una base de datos o como una referencia a un fichero pdf.
 * Este tipo de variables las veremos más adelante

Comentarios
Son ignorados por el intérprete Valor de la variable 16
 * Este código nos visualizará

Separación de instrucciones

 * En php cada instrucción se separa de otra con ; (punto y coma).
 * El cierre de etiqueta php implica un ; (punto y coma), por lo que podríamos no ponerlo

Valor de variable

 * A una variable le puedo asignar un valor en cualquier momento
 * El tipo de la variable depende del valor que tiene
 * Hay una serie de funciones del sistema relacionadas con los valores y las variables

Funciones de php de tipos y valores
http://php.net/manual/es/ref.var.php
 * Existen una serie de funciones que son interesantes de conocer
 * Están relacionadas con los tipos de datos y valores
 * Alguna de ellas son extremadamente útiles y utilizadas, por ejemplo antes de procesar un dato, hay que ver que dicho dato tenga valor.
 * A continuación trataremos alguna de ellas


 * var_dump
 * Nos da información sobre la estructura de un valor resultado de una expresion


 * isset
 * verifica que una variable tiene valor (está definida y no tiene un valor null)


 * empty
 * Determina si una variable no existe. Devuelve true si no existe o su valor está vacío


 * gettype]
 * Devuelve el tipo de una variable


 * is-double is-int, is-xxx
 * son funciones donde xxx especificado en el último nombre, puede ser cualquiera de los tipos


 * Todas ellas devuelve un booleano que indica si la variable, valor o expresion es o no de ese tipo,

void unset ($var)
 * unset
 * Destruye la variable especificada perdiéndose su valor

Cadenas

 * En php las cadenas de caracteres, son expresiones literales
 * Tenemos 4 maneras diferentes de poder expresar una cadena de caracteres como un literal
 * Comillas dobles ""
 * Comillas sencillas ''
 * Sintasix heredoc
 * Sintaxis nowdoc


 * Comillas dobles
 * En ellas se interpretan los caracteres especiales
 * 1)  $ seguido de un nombre, interpreta que es una variable y toma su valor (null si no tiene valor o no está definida
 * 2) \ es un caracter de secuencia de escape, e interpreta que el carácter siguiente tiene un significado especial \\ \a \n \r \t, ...

El valor de la variable $nombre es pedro
 * Si queremos que se ignore un carácter especial, éste ha de ir precedido por el caracter \
 * El resultado sería


 * Comillas simples
 * En ellas solo se interpreta el carácter, seguido de \ o bien seguido de la barra invertida \\ comilla simple \ ' 
 * El resto de caracteres no se interpretan

El valor de la variable $nombre es $nombre y \ 'texto' si que se ve entre comillas simples';
 * La salida sería


 * Heredoc
 * Este tipo de expresión de string es útil para especificar cadenas largas en multilíneas
 * Se comporta como un string entre comillas dobles para el tema de interpretar y escapar ciertos caracterres
 * Se establece con el operador <<<
 * A continuación viene un identificador
 * Después empieza a especificarse la cadena de caracteres
 * Para finalizarla se escribe en una nueva línea el identificador


 * La palabra final no debe tener ningún espacio ni tabulador antes


 * NewDoc
 * Es igual que heredoc, pero sin interpretar los caracteres especiales salvo \\ \.
 * O sea que es como un entrecomillado sencillo
 * La sintasix es igual que la de heredoc, pero a diferencia el delimitador que se especifica al principio debe de ir entrecomillado con comillas simples

Funciones de salida

 * Construcciones básicas para salida de caracteres
 * No son funciones (con o sin paréntesis) son echo' print''

echo

 * Es el uso más sencillo
 * Imprime una cadena como argumentos
 * En la versión sin paréntesis también puedes pasar una lista de argumentos.
 * Echo “primer argumento”, “segundo argumento”, “tercer argumeto”

print
Tiene dos diferencias con echo
 * 1) Sólo puede aceptar un argumento
 * 2) Devuelve un valor que representa si la sentencia ha tenido o no éxito


 * Para las siguientes actividades debes conocer las estructuras de control básicas.

Constantes

 * Se definen con la funcion define
 * identificador
 * Se usa el mismo criterio de construcción pero no empieza por $
 * Se pueden definir y utilizar en cualquier momento que se necesiten.
 * Para saber si una constante está definida defined

Constantes predefinidas
constantes predefinidas en php
 * Como en otros lenguajes, existen una serie de constantes predefinidas
 * Nos las ofrece el entorno y dependerán de él para su valor
 * PHP Ofrece un gran número de constantes predefinidas http://php.net/manual/es/reserved.constants.php
 * En php hay 8 constantes que su valor puede cambiar dependiendo del entorno donde se ejecutan

Ambito de una variable

 * http://php.net/manual/es/language.variables.scope.php
 * Ya sabemos que en PHP puedes utilizar variables en cualquier lugar de un programa.
 * Si esa variable aún no existe, la primera vez que se utiliza se reserva espacio para ella.
 * En ese momento, dependiendo del lugar del código en que aparezca, se decide desde qué partes del programa se podrá utilizar esa variable.
 * A esto se le llama visibilidad de la variable.


 * Ambito de una variable
 * En función de esto tenemos variables locales a la función y variables locales al script


 * Ambito de una variable
 * Para poder hacer dentro de una función a una variable definida fuera, he de usar la palabra reservada global

Variables static

 * Si una variable la declaramos static, hacemos que su posición de memoria no se elimine aunque no sea accesible por el script
 * Cuando volvamos a una sección del script donde vuelve a ser accesible, entonces retomaremos esa posicion de memoria, con el valor que tuviera


 * static
 * Las variables estáticas deben inicializarse en la misma sentencia en que se declaran como estáticas. De esta forma, se inicializan sólo la primera vez que se llama a la función.