
Con PHP se han hecho poderosos imperios, como Yahoo y Facebook (también Udemy). Comenzaremos desde lo básico, conociendo la historia del lenguaje y su estado actual. Revisaremos la formación de variables, los ciclos, las sentencias condicionales, los arreglos (o vectores), así como la forma de validar formas de HTML. Analizaremos las poderosas funciones para manejar fechas y cadenas. Todo de forma fácil y amena.
Dentro de los ejemplos encontraremos los siguientes:
Una sencilla galeria de fotos tomadas directamente de una carpeta
Subir archivos de imágenes de la computadora al servidor
Crear archivos de estado
Enviar un mail con PHP
Hacer páginas privadas con sesiones
Conocer la IP, browser y s/o del usuario que nos visita
Manejo de expresiones regulares
Aplicar filtros a las imágenes como negativo, contraste, blanco y negro, etc.
Reducir el tamaño y el peso de una imagen jpg, png o gif en forma automática
Con PHP se han hecho poderosos imperios, como Yahoo y Facebook (también Udemy). Comenzaremos desde lo básico, conociendo la historia del lenguaje y su estado actual. Revisaremos la formación de variables, los ciclos, las sentencias condicionales, los arreglos (o vectores), así como la forma de validar formas de HTML. Analizaremos las poderosas funciones para manejar fechas y cadenas. Todo de forma fácil y amena.
El cliente realiza una solicitud al servidor de un recurso .php
El servidor recibe la solicitud y llama al lenguaje PHP.
Donde el servidor encuentre las etiquetas PHP, lo ejecutará.
PHP realiza el programa y regresa como etiquetas HTML.
El servidor regresa el código HTML (nunca código PHP).
El cliente toma el HTML y el navegador lo interpreta.
1. Instalar la plataforma Apache-MySQL-PHP en su computadora como XAMPP, MAMP, LAMP o WAMP o es su defecto, contar con un servidor remoto con PHP.
2. Un navegador moderno.
3. Un editor de código como Sublime Text, Aptana, Brackets, Atom o Dreamweaver (cualquier versión).
4. Si se cuenta con un servidor remoto, necesitarás un FTP o cPanel.
Cómo preguntar en el curso.
Entrar a packagecontrol.io
Abrir la consola (view > show console).
Copiar el código en la consola y ejecutarlo.
Cerrar y abrir sublime text.
[Ctrl]-[shift]-[p] o tools > command palette
Escribimos
Install packages > sublime lint > detecta problemas de sintaxis.
Install packages > phpcs
XAMPP es un paquete de instalación independiente de plataforma, software libre, que consiste principalmente en el sistema de gestión de bases de datos MySQL, el servidor web Apache y los intérpretes para lenguajes de script: PHP y Perl.
MAMP es una poderosa herramienta para convertir nuestra computadora en un servidor web local.
Una herramienta muy poderosa para convertir a nuestra computadora en un servidor web es MAMP. Su forma de instalar es muy fácil.
En informática, "Hola, mundo" o "Hello, World!", en inglés es un programa que muestra el texto «¡Hola, mundo!» en un dispositivo de visualización, en la mayoría de los casos la pantalla de un monitor.
Las etiquetas de HTML pueden combinarse con el código PHP sin problema, incluso dentro de las etiquetas.
Los comentarios nos sirven para añadir documentación del código o para anular parte del código.
Por medio del método phpinfo() podemos conocer la configuración de PHP en nuestra instalación.
PHPDocs es una adaptación de JavaDocs para documentar la programación en PHP.
cPanel es un panel de control para administrar servidores de alojamiento web que proveen herramientas de automatización y una interfaz gráfica basada en páginas web.Este software cuenta con un diseño en tres capas que entrega distintos atributos a administradores, revendedores de espacio y usuarios finales.
Argumentos nombrados
Tipos de uniones
Atributos
Promoción de propiedades constructivas
Expresiones match
Operador nullsafe
JIT (traducción dinámica)
Mejoras en el sistema de tipos, manejo de errores y consistencia en general.
Enum: Las llamadas enumeraciones (enumeraciones con número determinado de valores) están ahora disponibles como tipo variable.
Fibers: El nuevo tipo de bloque de código fibers te ofrece la posibilidad de ejecutar múltiples hilos de programa en paralelo.
Arrays: Desde PHP 7.4 se pueden desempaquetar arreglos con valores numéricos. Ahora esto también es posible para los arreglos con cadenas.
Readonly: A partir de ahora, las propiedades de las clases pueden marcarse como de solo lectura ('readonly'), y, por tanto, ya no son modificables.
Nuevas Clases readonly
Permitir true, false, y null como tipos Independientes
Tipos de Forma Normal Disyuntiva (DNF)
Redactar los Parámetros Confidenciales en las Back Traces
Nueva Función mysqli_execute_query y Método mysqli::execute_query
Recuperar Propiedades de enum en Expresiones de const
Permitir Constantes en los Traits
Nueva Extensión Random
Nueva Función curl_upkeep
Desactualización de Interpolación de Cadenas ${}
Constantes de clase tipificadas
Búsqueda dinámica de constantes de clase
Nuevo atributo #[\Override]
Clonación profunda de propiedades de solo lectura
Nueva función json_validate()
Nuevo método Randomizer::getBytesFromString()
Nuevos métodos Randomizer::getFloat() y Randomizer::nextFloat()
El linter de línea de comandos admite múltiples archivos
Encadenamiento de expresiones sin paréntesis
Nuevas funciones array
API de objetos BCMath
Subclases específicas del driver PDO
Nuevas características para el DOM y soporte para HTML 5
Atributo #[\Deprecated]
Hooks para propiedades
Visibilidad asimétrica para las propiedades
Apuntes a la sección 1: Introducción a PHP
Los tipos de datos son fundamentales en cualquier lenguaje de programación. En PHP se considera un lenguaje "debilmente tipado", es decir, va a ser flexible en el manejo de datos, En este video te e indicamos cuáles son los tipos de datos primitivos que utilizamos en PHP.
Cadenas de caracteres o "String" - Datos alfanuméricos para representar letras y el lenguaje escrito de los humanos. Estos valores van siempre "encerrados" o delimitados entre las comillas dobles o comillas sencillas (apóstrofes). PHP solo admite un conjunto de 256 caracteres, y de ahí que no ofrezca soporte nativo para Unicode. En PHP7 ya soporta Unicode como secuencias de escape.
PHP es famoso por sus formas de concatenar cadenas. Por su propia naturaleza de ser un lenguaje intermedio para HTML, tiene poderosas herramientas para el manejo de cadenas, entre ellas su concatenación.
Las variables numéricas son muy flexibles en PHP. Podemos almacenar número decimales, octales y hetadecimales, enteros, negativos y enteros sin ninguna restricción.
Los números de punto flotante (también conocidos como "de coma flotante" en español, y "floats" en inglés) pueden ser especificados usando cualquiera de las siguientes sintaxis: El tamaño de un 'float' depende de la plataforma, aunque un valor común consiste en un máximo de ~1.8e308 con una precisión de aproximadamente 14 dígitos decimales (el formato de 64 bit del IEEE).
● Este es el tipo más simple. Un boolean expresa un valor que indica verdad. Puede ser TRUE (verdadero) o FALSE (falso).
● Para especificar un literal de tipo boolean se emplean las constantes TRUE o FALSE. Ambas no son susceptibles a mayúsculas y minúsculas.
● Usualmente, el resultado de un operador que devuelve un valor de tipo boolean es pasado a una estructura de control.
● Advertencia: -1 se considera TRUE, como cualquier otro número distinto de cero (ya sea negativo o positivo).
Podemos utilizar el nombre de una variable dentro del valor de una segunda variable y utilizar
esta última por medio de las llaves {}. Por ejemplo
$df = 22000000;
$guadalajara = 4000000;
$monterrey = 1400000;
$ciudad = "df";
print "<p>La población de la ciudad $ciudad es de ${$ciudad} de habitantes</p>";
$ciudad = "guadalajara";
print "<p>La población de la ciudad $ciudad es de ${$ciudad} de habitantes</p>";
$ciudad = "monterrey";
Esta sintaxis toma un punto de código de Unicode en forma hexadecimal e imprime ese punto de código en UTF-8 a una cadena con entrecomillado doble o a un heredoc . Se acepta cualquier punto de código válido, siendo los ceros iniciales opcionales.
Existen un tipo de "cajitas" que pueden contener mas de un valor independiente a la ves, y se llaman "arreglos" (arrays). Esto puede visualizarse como una caja de herramientas con compartimentos independientes, pero todos unidos formando una sola"caja". No se pueden separar los compartimentos de la caja principal, y ahí donde va la caja principal, van las "cajitas" que esta contiene. Se verán los arreglos en la sección 6
Es posible "forzar" a que el resultado de una operación cambie de tipo, como por ejemplo una división entre números con decimales regrese un número entero. La manera más fácil de forzar este cambio es así: La variable $entero sólo recibirá un valor entero, sin los decimales. $entero = (integer) $subtotal / $iva; En el último caso, cualquier valor que sea diferente de cero regresa "true", y cero regresa "false". También tenemos las funciones: intval() floatval() strval() boolval() settype() gettype()
Por medio de unset() podemos eliminar una variable, un objeto, una instancia o un elemento de un arreglo.
A partir de la versión 8.1 podemos definir los números octales de forma explícita para evitar errores cuando inicia el número cero.
Apuntes a la sección 2: : Tipos de datos y variables
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Un operador es algo que toma uno más valores (literales, variables u otros operadores) y produce otro valor (de modo que la construcción en si misma se convierte en una expresión).
+$a Identidad Conversión de $a a int o float según el caso.
-$a Negación Opuesto de $a.
$a + $b Adición Suma de $a y $b.
$a - $b Sustracción Diferencia de $a y $b.
$a * $b Multiplicación Producto de $a y $b.
$a / $b División Cociente de $a y $b.
$a % $b Módulo Resto de $a dividido por $b.
$a ** $bExponenciaciónResultado de elevar $a a la potencia $bésima.
El operador básico de asignación es "=". Se podría inclinar a pensar primero que es como un "igual a". No lo es. Realmente significa que el operando de la izquierda se establece con el valor de la expresión de la derecha (es decir, "se define como").
El valor de una expresión de asignación es el valor asignado. Es decir, el valor de "$a = 3" es de 3.
Los operadores bit a bit permiten la evaluación y la manipulación de bits específicos dentro de un valor entero.
Los operadores de comparación, como su nombre lo indica, permiten comparar dos valores:
$a == $b Igual, TRUE si $a es igual a $b después de la manipulación de tipos.
$a === $b Idéntico, TRUE si $a es igual a $b, y son del mismo tipo.
$a != $b Diferente, TRUE si $a no es igual a $b después de la manipulación de tipos.
$a <> $bDiferente TRUE, si $a no es igual a $b después de la manipulación de tipos.
Pruebe este código. Luego cambie el valor de las variables $limite y $llegadas_tarde y compare los resultados.
Es posible incluir un comando "if" dentro de otro comando "if". En este caso es conveniente alinear los comandos y sus"llaves" ( { y } ) para facilitar la lectura y comprensión de la lógica de la programación.
PHP soporta un operador de control de errores: el signo de arroba (@). Cuando se antepone a una expresión en PHP, cualquier mensaje de error que pueden ser generado por esa expresión será ignorado.
La precedencia de un operador indica qué tan "estrechamente" se unen dos expresiones juntas.
Los paréntesis pueden ser usados para forzar la precedencia, si es necesario.
Cuando los operadores tienen igual precedencia su asociatividad decide cómo se agrupan.
El operador de fusión de null (??) es equivalente al operador ternario junto con isset().
Devuelve su primer operando si existe y no es NULL; de lo contrario devuelve su segundo operando.
Versiones: PHP7
El operador de fusión de null (??) es equivalente al operador ternario junto con isset().
Devuelve su primer operando si existe y no es NULL; de lo contrario devuelve su segundo operando.
El operador nullsafe funciona igual que el acceso a la propiedad o al método como se indicó anteriormente, excepto que si se devuelve el objeto al que se le quita la referencia null, null se devolverá en lugar de lanzar una excepción.
ANTES. Cuando comparábamos el 0 con una cadena de texto devolvía un verdadero:
echo 0 == 'cualquier texto' ? "verdadero" : "falso"; //Devuelve "verdadero" (TRUE)
AHORA. En PHP 8 convierte la cadena de texto en número y si no es un valor numérico devuelve falso:
echo 0 == 'cualquier texto' ? "verdadero" : "falso"; //Devuelve "falso" (FALSE)
Apuntes a la sección 3: Operadores en PHP
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
En los lenguajes de programación existen dos grandes grupos de comandos para el control del flujo del programa, para decidir que hacer, o si se trata de un ciclo, cuantas veces hacerlo o hasta que momento dejar de hacerlo.
El primer grupo de comandos son los "condicionales", los cuales evalúan una expresión y dependiendo del resultado de la evaluación (verdadero o falso) ejecutan o dejan de ejecutar ciertas instrucciones.
Es posible incluir un comando "if" dentro de otro comando "if". En este caso es conveniente alinear los comandos y sus "llaves" ( { y } ) para facilitar la lectura y comprensión de la lógica de la programación.
Nota: se recomienda no “anidar” más de tres sentencias condicionales, por cuestiones de claridad.
Por medio de varios condicionales if podemos manejar varios rangos.
A veces es necesario preguntar por una serie de "rangos" en las condiciones, y se deben escribir varios estatutos "if", ya sea independientes o unos dentro de otros.
Cuando tenemos una sola sentencia tanto en la sentencia afirmativa como en la negativa (else), podemos omitir las llaves.
No podemo combinar ambas sintaxis, con llaves y sin llaves. En términos generales esta notación no es recomendada porque es poco flexible.
Una alternativa a usar varios comandos "if" es el comando "switch". A diferencia de los comandos "if", el comando "switch" sólo puede evaluar una sola expresión.
Si una evaluación es verdadera se ejecutarán todas las sentencias hasta encontrar una sentencia “break”. Si ninguna sentencia se cumple, podemos añadir una sentencia “default”.
Podemos agrupar más de una comparación, equivalente a una sentencia “or”.
La expresión ramifica la evaluación basada en una comprobación de identidad de un valor.
De forma similar a una sentencia switch, una expresión match tiene una expresión de sujeto que se compara con múltiples alternativas.
A diferencia de switch, se evaluará a un valor muy parecido al de las expresiones ternarias.
Apuntes a la sección 4: Estructuras condicionales
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Los ciclos son sentencias condicionales, pero si la condición es verdadera (true) se repite (ciclo) hasta que la condición resulte falsa (false).
En el ciclo “while” primero se hace la pregunta, y si es verdadera, se ejecuta un bloque de sentencias y se vuelve a repetir la pregunta, hasta que ésta resulte falsa.
Una alternativa a usar varios comandos "if" es el comando "switch". A diferencia de los comandos "if", el comando "switch" sólo puede evaluar una sola expresión.
Si una evaluación es verdadera se ejecutarán todas las sentencias hasta encontrar una sentencia “break”. Si ninguna sentencia se cumple, podemos añadir una sentencia “default”.
Podemos agrupar más de una comparación, equivalente a una sentencia “or”.
Como se observa en los ejemplos anteriores, es muy común usar una variable "contador", la cual es inicializada en algún valor(en los ejemplos fue "cero") e incrementada en un valor a cada vuelta del ciclo (en los ejemplos se incrementó en "1").
El comando "for" representa una manera "diferente" de hacer un ciclo de tipo "while", pero con la inicialización de la variable"contador", y su incremento, en una sola línea.
A veces es necesario salir prematuramente de un ciclo, debido a una condición excepcional.
El comando "break" termina el ciclo y no vuelve a evaluar la expresión, terminando definitivamente el ciclo, sin importar el valor de la expresión.
Este comando funciona dentro de cualquier comando de ciclos y condicionales (if, switch, while, do...while y for).
El comando “continue” repite el ciclo sin ejecutar las instrucciones que estén después de ésta.
Apuntes a la sección 5: Estructuras Cíclicas
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
En PHP los arreglos inician en cero y pueden contener diferente tipo de datos:
Para evitar todo este manejo de contadores, tamaño del arreglo y el uso de los caracteres "[" y "]" se puede usar el comando"foreach" para recorrer todo un arreglo.
La sintaxis básica para este comando es:
foreach( nombre-del-arreglo as elemento ) {
sentencias;
}
No siempre es conveniente usar números para identificar los elementos de un arreglo. Para el humano es más fácil usar"letreros" o "nombres" para identificar las cosas.
PHP permite crear arreglos cuyos elementos tienen nombres en vez de números.
Mezclar dos o más arreglos en uno solo, con el comando "array_merge".
Agregar varios elementos al principio del arreglo, con el comando "array_push"
Quitar el primer elemento de un arreglo, con el comando "array_shift"
Quitar cualquier elemento de un arreglo, con el comando "unset"s
Buscar por un valor exacto en todo el arreglo, con el comando "in_array".
A veces es necesario ordenar los elementos de un arreglo. Esto se logra fácilmente con el comando "sort", el cual ordena todos los elementos de un arreglo de manera "ascendente".
bool sort ( $array [, int $sort_flags = SORT_REGULAR ] );
asort — Ordena un array y mantiene la asociación de índices
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] );
Esta función ordena un array manteniendo la correlación de los índices del array con los elementos con los que están asociados. Esta función se utiliza principalmente para ordenar arrays asociativos en los que el orden es importante.
La función shuffle() mezcla un arreglo (crea un orden aleatorio de sus elementos). Utiliza un generador de números seudo aleatorios que no es apto para fines criptográficos.
bool shuffle ( array &$arreglo )
La función array_rand() selecciona uno o más valores aleatorios de un arreglo y devuelve la clave (o claves) de dichos valores aleatorios.
Utiliza un generador de números seudo aleatorios que no es apto para fines criptográficos.
mixed array_rand ( array $array [, int $num = 1 ] )
sort() - Ordena un arreglo en orden ascendente.
rsort() - Ordena un arreglo en orden descendente.
asort() - Ordena un arreglo asociado en orden ascendente según un valor.
ksort() - Ordena un arreglo asociado en orden ascendente según una llave.
arsort() - Ordena un arreglo asociado en orden descendente según un valor.
krsort() - Ordena un arreglo asociado en orden descendente según una llave
current() - Devuelve el elemento actual en un arreglo
each() - Devolver el par clave/valor actual de un arreglo y avanzar el cursor del arreglo
prev() - Rebobina el puntero interno del arreglo
reset() - Establece el puntero interno de un arreglo a su primer elemento
next() - Avanza el puntero interno de un arreglo
end() - Establece el puntero interno de un arreglo a su último elemento
Ahora se pueden definir constantes de array con define().
En PHP 5.6, solamente se podían definir con const.
var_dump — Muestra información sobre una variable.
void var_dump ( mixed $expression [, mixed $... ] )
Esta función muestra información estructurada sobre una o más expresiones incluyendo su tipo y valor.
Los arreglos y los objetos son explorados recursivamente con valores sangrados para mostrar su estructura.
print_r() — Muestra información sobre una variable.
mixed print_r ( mixed $expression [, bool $return = false ] );
En PHP podemos hacer arreglos de dos o más dimensiones.
Podemos combinar arreglos con índices numéricos o asociativos.
Cada vez que se crea una página en PHP, se generan automáticamente varios arreglos que se les conoce como “arreglos globales” o “arreglos de ambiente”.
No es necesario crearlos, pero pueden crearse vacíos.
list — Asignar variables como si fueran un arreglo.
array list ( mixed $var1 [, mixed $... ] )
array_values - Devuelve todos los valores como un arreglo indexado.
array_keys() - Devuelve todas las llaves de un arreglo o un subconjunto de llaves de un arreglo.
array_combine() - Crea un nuevo arreglo, usando un arreglo para las llaves y otra para los valores.
array_key_exists() - Verifica si el índice o llave dada existe en el arreglo.
array_search() - Busca un valor determinado en un arreglo y devuelve la primera llave correspondiente en caso de encontrarla.
No hay una función con la que podamos cambiar el nombre de una llave en tiempo de ejecución.
Podemos crear un nuevo elemento del arreglo y borrar el anterior.
Podemos acceder a los elementos de una función por medio de corchetes a partir de PHP 5.4.
Podemos acceder a arreglo numéricos o asociativos.
A partir de PHP 7.4 se pueden desempaquetar arreglos con valores numéricos.
A partir de 8.1 también es posible desempaquetar los arreglos con cadenas.
array_any — Comprueba si al menos un elemento de la matriz satisface una función de devolución de llamada
Array_any ( matriz $array , invocable $callback ): booleano
array_all — Comprueba si todos los elementos de la matriz satisfacen una función de devolución de llamada
Apuntes a la sección 6: Arreglos
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Una función es un bloque de código de PHP que no es ejecutado inmediatamente, sino que puede ser "llamado" o ejecutado desde el código "principal" varias veces. Una función es la definición de una "rutina", que es probable que se vaya a ejecutar muchas veces.
Una analogía típica es una receta de cocina.
La sintaxis general para crear o definir una función es la siguiente:
function nombre_de_la_receta ( ingredientes ) {
comando;
comando;
}
El nombre de las funciones sigue las reglas de los nombres de las variables, con una excepción: el símbolo "$" al principio del nombre
Las variables que se definen fuera de una función se les considera “globales”.
Las variables que se definen dentro de una función se le considera “local”.
Los parámetros son variables locales.
Para que podamos “ver” una variable desde una función, debemos “pedir permiso” con la palabra reservada “global”.
Las funciones pueden regresar un valor después de ser llamadas, pero solo pueden regresar un valor directamente por medio de la palabra reservada “return”.
Si se desea"simular" el regreso de varios valores, se declaran variables globales y se modifican dentro de la función o puede regresar un objeto o un arreglo.
Así, al terminar la función dejará una "herencia" de variables globales modificadas.
Por defecto, los argumentos o parámetros de las funciones son pasados por valor (así, si el valor del argumento dentro de la función cambia, este no cambia fuera de la función).
Para permitir a una función modificar sus argumentos, éstos deben pasarse por referencia.
Una función puede definir valores predeterminados al estilo de C++ para argumentos escalares.
PHP también permite el uso de arreglos y del tipo especial NULL como valores predeterminados.
El valor predeterminado debe ser una expresión constante, no una variable, un miembro de una clase o una llamada a una función.
Las declaraciones de tipo permiten a las funciones requerir que los parámetros sean de cierto tipo durante una llamada.
Si el valor dado es de un tipo incorrecto, se generará un error: en PHP 5, este error es un error fatal recuperable, mientras que PHP 7 lanzará una excepción TypeError.
PHP 7 añade soporte para las declaraciones de tipo de devolución de las funciones.
De forma similar a las declaraciones de tipo de argumento, las declaraciones de tipo de devolución especifican el tipo del valor que serán devuelto desde una función.
Están disponibles los mismos tipos para las declaraciones de tipo de devolución que para las declaraciones de tipo de argumento.
Por defecto, PHP fuerza a los valores de un tipo erróneo a ser del tipo esperado si es posible.
Por ejemplo, una función a la que se le pasa un entero o integer para un parámetro que se prevé sea una cadena o string obtendrá una variable de tipo cadena o string.
Se puede especificar argumentos posicionales normales antes del token .... En este caso, solamente los argumentos al final que no coincidan con un argumento posicional serán añadidos al array generado por ...
También es posible añadir una declaración de tipo antes del símbolo ...
Si está presente, todos los argumentos capturados por ... deben ser objetos de la clase implicada.
Los generadores son funciones que en lugar de utilizar la palabra reservada “return”, con la cual acaba la función, utilizamos la palabra reservada “yield”, con la cual “entregamos” el valor, pero NO se termina la función, la podemos volver a llamar.
El uso de generadores nos ayudan a ahorrar mucha memoria RAM en procesos muy grandes.
Los generadores podemos regresar valores como arreglos asociativos.
En la palabra reservada “yield” indicamos cuál es la llave.
Esta característica se basa en la funcionalidad de los generadores. Habilita a la sentencia “return” para utilizarla dentro de un generador para que pueda devolver una expresión final (la devolución por referencia no está permitida).
Este valor se puede obtener empleando el nuevo método Generator::getReturn(), el cual solamente se puede utilizar una vez que el generador ha finalizado de producir valores.
Los generadores ahora pueden “delegar” a otro generador de forma muy sencilla por medio de la construcción “yield from”.
Versiones: PHP 5, 7
Por medio del super arreglo $GLOBALS[ ] podemos llamar a una variable declarada fuera de la función, dentro de la función.
Con el modificador de acceso global podemos hacer lo mismo.
La diferencia entre las dos opciones es que con $GLOBALS podemos declarar una variable global dentro de una función (práctica NO recomendada).
PHP 8.0.0 introdujo argumentos con nombre como una extensión de los parámetros posicionales existentes.
Los argumentos con nombre permiten pasar argumentos a una función en función del nombre del parámetro, en lugar de la posición del parámetro.
Unión de tipos:
Una declaración de tipo de unión acepta valores de múltiples tipos simples diferentes, en lugar de uno solo.
Los tipos de unión se especifican mediante la sintaxis T1|T2|.... Los tipos de unión están disponibles a partir de PHP 8.0.0.
PHP 8 permite una coma al final de una lista de parámetros.
En PHP 8.1 podemos usar la expresiones new dentro de valores predeterminados de parámetros, argumentos de atributos, inicializadores de variables estáticas e inicializadores de constantes globales.
En PHP 8.1 tenemos un tipo de retorno “never” que indica que la función no regresa ningún valor y que termina la ejecución con una función exit(), die(), trigger_error() o similar.
En PHP 8.1 podemos seguir utilizando el arreglo $GLOBALS exactamente igual en forma individual, pero marcará un error si lo intentamos utilizar en forma de un arreglo como un todo.
Apuntes a la sección 7: Funciones
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Al usar el PHP7 mediante un servidor de páginas web, el único medio de comunicación "interactiva" con los usuarios es a través de formas de HTML.
En ellas, el usuario escribe datos que son evaluados y procesados por una rutina de PHP7 y se genera un resultado.
Los métodos para enviar los datos de un formulario a otra página son GET y POST.
Los siguientes elementos los recibimos del formulario como cadenas:
Input (de todo tipo)
Radio button
Select sencillo
Textarea
Los siguientes elementos los recibimos del formulario como arreglos:
Select múltiple
Cajas de verificación
El primer ejemplo compara la variable $nombre contra una cadena "vacío", representado por dos comillas.
El segundo usa una función integrada que obtiene la longitud de un string (strlen) y la compara contra el número 0.
En ambos casos, si esto llega a ser verdadero (true), se ejecutará el código para manejar ese error.
Para las variables de tipo arreglo, que se manejan en los combos de lista y los cuadros de verificación, lo primero a validar es si existe el arreglo, ya que si el usuario no selecciona ninguna opción, no se genera un arreglo vacío, sino que la variable ni siquiera existe.
En el caso de existir, es bueno saber cuántos elementos tiene el arreglo.
Con la función isset() nos regresa un valor verdadero si la variable está definida (si existe) y un valor falso si esta variable NO está definida.
A veces es necesario incluir valores que sean asignados a una variable al mandar una forma, pero sin que el usuario se entere. Para esto se usan los campos ocultos.
Supongamos que se desea pasar los nombres de las plantillas de HTML que se van a mostrar si hubo un error en el llenado de la forma, y otra cuando el llenado fue exitoso.
Por medio del comando HEADER podemos desviar el flujo de la página a otra, pero no debe hacer ninguna salida a la pantalla, ya sea de PHP o HTML.
Por medio de pasar un sólo parámetro podemos utilizar una plantilla para reducir el número de archivos necesarios.
También podemos pasar un parámetro en un hipervínculo.
Validar un formulario utilizando header()
Validar un formulario utilizando header()
Validar un formulario utilizando header()
Apuntes a la sección 8: Validar formularios
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
El manejo de hora y fecha es una herencia del Unix, y aunque el manejo interno es muy sencillo, hay que entender el formato"nativo".
En PHP los datos de hora y fecha se representan exclusivamente como "segundos": los segundos transcurridos desde el 1 de enero de 1970 (fecha "oficial" de la era del Unix). Así es que cualquier hora o fecha es representada en "segundos".
Existe una manera de obtener los datos más comunes de hora y fecha, mediante la función integrada "getdate".
La sintaxis básica para este comando es:
$arreglo = getdate( segundos );
Si el parámetro "segundos" se omite, se usa el resultado de la función "time".
Este comando regresa un arreglo asociativo con los siguientes datos:
seconds segundos del minuto, entre 0 y 59 23
minutes minutos de la hora, entre 0 y 60 15
hours horas del día, entre 0 y 23 22
mday día del mes, entre 1 y 31 10
wday día de la semana, entre 0 y 6 2
mon mes del año, entre 1 y 12 2
year año, cuatro dígitos 2001
yday día del año, entre 0 y 365 43
weekday nombre del día de la semana Tuesday
month nombre del mes del año February
0 segundos 983671286
Cuando se desea saber qué hora y fecha es, todo va muy bien hasta aquí. Pero qué pasa cuando se desean hacer operaciones con fechas? El PHP solo entiende de segundos, y nada más. ¿Y que pasa si el usuario escribe una fecha, o una hora?
El comando mktime es el primer paso para solucionar los problemas descritos, convirtiendo hora y fecha de formato "humano"a segundos.
La sintaxis básica para este comando es:
$segundos = mktime( hora, minuto, segundo, mes, dia, anio );
Comprueba la validez de una fecha formada por los argumentos. Una fecha se considera válida si cada parámetro está propiamente definido.
bool checkdate ( int $mes , int $dia , int $anio );
date_default_timezone_set
Establece la zona horaria predeterminada usada por todas las funciones de fecha/hora en un script.
date_default_timezone_set
Establece la zona horaria predeterminada usada por todas las funciones de fecha/hora en un script.
Microtime
Separamos la fecha con explode().
Asignamos con list().
Cambiamos la fecha con set_default_timezone().
Apuntes a la sección 9: Manejo y verificación de fechas
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Para "formatear" un valor numérico de modo que sea más fácil su lectura, se usa la función integrada "printf".
La sintaxis básica para este comando es:
printf ( control_del_formato, lista_de_numeros );
Esta variante del comando "printf" no manda el resultado al navegador del usuario, sino que crea un "string" para ser guardadoy usado más adelante.
La sintaxis básica para este comando es:
$cadena = sprintf ( control_del_formato, lista_de_numeros );
Este comando es muy usado para "formatear" valores numéricos de una manera más sencilla, y muy orientado a mostrar cantidades en formato de "moneda". Solo incluye comas para separar miles, millones, etc, y el número de decimales indicado.
string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )
La función setlocale() modifica la configuración local, como el formato de la fecha, formato de la hora, la moneda, etc.
Tiene dos sintaxis:
string setlocale ( int $category , string $locale [, string $... ] )
string setlocale ( int $category , array $locale )
Genera una representación apta para el almacenamiento de un valor
string serialize ( mixed $value )
Esto es útil para el almacenamiento de valores en PHP sin perder su tipo y estructura.
Para recuperar el valor PHP a partir de la cadena seriada, utilice unserialize().
El valor a ser serializado. serialize() maneja todos los tipos.
Por medio de los filtros crearemos “listas blancas” de las clases que si podemos deserializar de datos de entrada no seguros. Todas las demás clases serán bloqueadas para evitar la inyección de código.
Los filtros son exclusivos de PHP7.x.
htmlentities — Convierte todos los caracteres aplicables a entidades HTML
html_entity_decode — Convierte todas las entidades HTML a sus caracteres correspondientes
(PHP 4, PHP 5, PHP 7+)
urlencode() — Codifica como URL una cadena
urldecode() — Decodifica una cadena cifrada como URL
(PHP 4, PHP 5, PHP 7)
addslashes — Escapa una cadena con barras invertidas
stripslashes — Quita las barras invertidas de una cadena con comillas escapadas
htmlspecialchars — Convierte caracteres especiales en entidades HTML:
& (et) &
" (comilla doble) "
' (single quote) '
< (menor que) <
> (mayor que)>
La función PHP iconv() se utiliza para convertir una cadena de una codificación de caracteres a otra. Forma parte de la extensión iconv de PHP, que proporciona robustas capacidades de conversión de conjuntos de caracteres basadas en la biblioteca iconv.
Apuntes a la sección 10: Formateo de datos
¿Algo para mejorar en esta sección?
¿Algún comentario o aporte?
Tus comentarios son muy importantes y seguiré trabajando para que puedas calificar este curso con 5 estrellas.
Incluye el eBook del curso:
Con PHP (actualizado a PHP 8.4) se han hecho poderosos imperios, como Yahoo y Facebook (también Udemy). Comenzaremos desde lo básico, conociendo la historia del lenguaje y su estado actual. Revisaremos la formación de variables, los ciclos, las sentencias condicionales, los arreglos (o vectores), así como la forma de validar formas de HTML. Analizaremos las poderosas funciones para manejar fechas y cadenas. Todo de forma fácil y amena.
Dentro de los ejemplos encontraremos los siguientes:
Una sencilla galería de fotos tomadas directamente de una carpeta
Subir archivos de imágenes de la computadora al servidor
Crear archivos de estado
Enviar un mail con PHP
Hacer páginas privadas con sesiones
Conocer la IP, browser y s/o del usuario que nos visita
Manejo de expresiones regulares
Aplicar filtros a las imágenes como negativo, contraste, blanco y negro, etc.
Reducir el tamaño y el peso de una imagen jpg, png o gif en forma automática
Subir un archivo CSV a MySQL y bajar la información de MySQL a CSV.
Conectarse a un sistema RSS.
Crear una encuesta en línea.
Crear un sistema ABC o CRUD.
Paginar una consulta larga.
Leer un archivo de ayuda para la captura con AJAX.
Crear un sistema para el control de “estampas” con OOP.
Crear un contador de visitas y guardar información del usuario con cookies.
Guardar imágenes en MySQL y descargarlas a disco.
Crear un campo de captcha con PHP.
Crear archivos PDF con las librerías fpdf y html2pdf
Este curso está dirigido a desarrolladores Web que deseen realizar aplicaciones en la plataforma PHP-MySQL.. Debes tener conocimientos previos de HTML y CSS. Debes contar con un editor de código y un navegador moderno.