14.5 - Funciones con tipado definido en PHP - Curso PHP 8 desde cero (Actualizado)
Summary
TLDREn este capítulo, se explica cómo definir una función en PHP llamada 'sumar enteros' que sume dos parámetros enteros. Se discute la importancia de especificar tipos de datos para evitar errores, como pasar un float en lugar de un entero. Se muestra cómo se puede declarar el tipo de datos estricto y cómo se pueden especificar tanto los tipos de parámetros como los tipos de retorno de la función. Además, se explora la conversión automática de tipos de datos y cómo se pueden generar errores al no cumplir con los tipos esperados, abordando diferentes tipos de datos como enteros, floats, strings, arrays, objetos y null.
Takeaways
- 😀 Se define una función llamada 'sumar enteros' que recibe dos parámetros para sumar valores enteros.
- 🔢 La función 'sumar enteros' espera que ambos parámetros sean de tipo entero para evitar errores de tipos de datos.
- 🛠️ Se puede especificar el tipo de dato esperado en los parámetros de la función colocando 'int' antes del nombre del parámetro.
- 🚫 Al pasar un valor de tipo flotante a una función que espera enteros, PHP intenta convertirlo a entero, pero es mejor ser explícito sobre los tipos.
- ⚠️ Se menciona la utilización de 'strict types' para forzar la verificación de tipos de datos en el código PHP.
- 💡 Se aprende que si se pasa un tipo de dato incorrecto, el editor de código puede marcar el error antes de ejecutar el código.
- 📊 Se puede especificar el tipo de dato que una función espera retornar, como 'int' para enteros o 'float' para flotantes.
- 🔄 Se discute la posibilidad de que una función pueda retornar diferentes tipos de datos, como enteros, flotantes, strings, booleanos, arrays, objetos, o null.
- 🎥 El video es una lección educativa sobre la programación en PHP, enfocándose en la importancia de la tipado de datos.
- 👋 El presentador invita a los espectadores a interactuar con el canal a través de 'me gusta' y suscripciones.
Q & A
¿Qué función se define en el capítulo mencionado?
-Se define una función llamada 'sumar enteros' que espera recibir dos parámetros, 'entero uno' y 'entero dos', y su objetivo es sumar estos dos valores.
¿Cómo se puede llamar a la función 'sumar enteros' y qué valores se le pueden pasar?
-Se puede llamar a la función 'sumar enteros' pasándole dos valores, por ejemplo, el valor 2 y el valor 5, y se almacenará el resultado en una variable llamada 'resultado'.
¿Qué sucede si se pasa un valor flotante a la función 'sumar enteros' que solo espera enteros?
-Si se pasa un valor flotante, PHP intentará convertirlo en un entero. Por ejemplo, el valor 5.4 se convertiría en 5 antes de realizar la suma.
¿Cómo se evita que la función 'sumar enteros' acepte valores distintos a enteros?
-Para evitar que se acepten valores distintos a enteros, se especifica el tipo de dato 'int' delante del nombre de la variable en la definición de la función.
¿Qué significa declarar un tipo estricto en el código PHP?
-Declarar un tipo estricto significa que el código se ejecutará con más restricciones de tipo de datos, lo que evita que se pase un tipo de dato incorrecto a una función o se devuelva un tipo de dato inesperado.
¿Qué ocurre si se pasa un valor de tipo cadena a la función 'sumar enteros' con tipos estrictos?
-Si se pasa un valor de tipo cadena a una función con tipos estrictos, el editor marcará un error inmediatamente, ya que no se puede convertir una cadena en un entero.
¿Cómo se puede especificar el tipo de dato que una función espera recibir en PHP?
-Se puede especificar el tipo de dato que una función espera recibir colocando el tipo de dato (como 'int', 'float', 'string', 'bool', 'array', 'object') después de los paréntesis de los argumentos de la función.
¿Qué hace la función 'sumar enteros' si se le pasa un número y se especifica que debe devolver un entero?
-Si se le pasa un número y se especifica que debe devolver un entero, la función realizará la suma y devolverá el resultado como un entero, ignorando cualquier decimal.
¿Cómo se puede hacer que una función devuelva tanto enteros como flotantes en PHP?
-Para hacer que una función devuelva tanto enteros como flotantes, se puede especificar el tipo de dato 'int' seguido de una barra invertida y luego 'float' en la declaración de la función.
¿Qué otros tipos de datos se pueden especificar para los parámetros o el retorno de una función en PHP?
-Además de 'int' y 'float', se pueden especificar 'string', 'bool', 'array', 'object', y 'null' para los parámetros o el retorno de una función en PHP.
Outlines
📚 Definición de funciones y tipos de datos en PHP
En este primer párrafo, se aborda la creación de una función llamada 'sumar enteros' en PHP, la cual recibe dos parámetros, 'entero uno' y 'entero dos', y devuelve su suma. Se explica cómo se puede llamar a esta función y almacenar el resultado en una variable, y cómo se puede imprimir ese resultado. Además, se menciona el problema de tipos de datos cuando se pasan valores de diferentes tipos (como un flotante) a una función que solo espera enteros. Se destaca la importancia de especificar los tipos de datos de los parámetros y el retorno de la función para evitar errores y asegurar la integridad de los datos. Finalmente, se introduce la noción de 'tipo estricto' en PHP, que obliga a que los tipos de datos sean correctos y evita la conversión automática, lo que se puede activar al principio del archivo.
🛠 Especificación de tipos de retorno y manejo de errores
En el segundo párrafo, se profundiza en la especificación de tipos de datos para los valores de retorno de una función en PHP. Se muestra cómo se puede declarar que el tipo de dato esperado sea un entero, y cómo esto evita que se devuelvan valores de otros tipos, como flotantes o cadenas, que podrían causar errores. Se ejemplifica con la operación de suma y división, y se explica que si se especifica un tipo de retorno incorrecto, PHP marcará un error en tiempo de ejecución. Además, se discute la flexibilidad de PHP para permitir la especificación de múltiples tipos de retorno, como enteros, flotantes, cadenas, booleanos, arrays, objetos, o null. Finalmente, se invita al espectador a interactuar con el canal y se cierra el capítulo.
Mindmap
Keywords
💡Función
💡Parámetros
💡Tipo de dato
💡Tipo estricto
💡Error
💡Valor de retorno
💡Variable
💡Flotante
💡Cadena
💡Array
Highlights
Definir una función llamada 'sumar enteros' que reciba dos parámetros, 'entero uno' y 'entero dos'.
La función 'sumar enteros' debe sumar los dos valores enteros y retornar la suma.
Crear una variable 'resultado' para almacenar el valor retornado por la función.
Imprimir el valor almacenado en la variable 'resultado'.
Si se pasa un número entero y un flotante a la función, PHP intentará convertir el flotante a entero.
Especificar el tipo de variable 'int' antes del nombre para forzar que los parámetros sean enteros.
Si se pasa un valor no entero, como un flotante, PHP mostrará un error si se ha declarado el tipo estricto.
Declarar el tipo estricto en el archivo para evitar errores de tipos de datos inesperados.
Especificar el tipo de dato esperado por la función en la definición de la función.
Si se especifica un tipo de retorno incorrecto, PHP marcará un error en tiempo de ejecución.
Es posible especificar múltiples tipos de datos que la función puede retornar, como 'int' o 'float'.
Los tipos de datos que se pueden especificar incluyen 'int', 'float', 'string', 'bool', 'array', 'object' y 'null'.
La función 'sumar enteros' puede ser utilizada para sumar valores enteros y prevenir errores de tipos de datos.
El uso de tipos estrictos mejora la seguridad y la previsibilidad del código PHP.
Se puede utilizar PHP Intelligence en el editor para obtener ayuda con los tipos de datos esperados.
El capítulo aborda cómo definir funciones con tipos de datos específicos y manejar errores de tipos de datos en PHP.
Transcripts
para este capítulo quiero hacer lo
siguiente quiero definir una función una
función que se llame por ejemplo sumar
enteros
y vamos a especificar que esta función
espera recibir dos parámetros un
parámetro que se llame entero uno y un
segundo parámetro que se llame entero
dos muy bien y lo que quiero que haga
esta función es que sume estos dos
valores entonces lo que yo podría hacer
acá es lo siguiente pedir que me retorne
la suma del entero 1 más la suma del
entero 2
y luego por fuera podría
[Música]
y definir una variable llamada resultado
y en esta variable almacenar lo que me
retorna la función sumar enteros podría
llamar entonces a esa función y pasarle
dos valores por ejemplo el valor de 2 y
el valor de 5 una vez que ya tengo
rescatado lo que me retorna esta función
podría imprimir lo que tengo almacenado
en la variable de resultado lo que
debería ocurrir ahora es que en pantalla
se muestre el valor de 7 ya que es la
suma de estos dos valores si ahora vengo
por aquí y actualizo vemos que
efectivamente lo que me sale es el valor
de 7 pero ahora aquí nos podemos
enfrentar a un inconveniente y es que
imaginemos que hemos definido esta
función para que sume exclusivamente a
valores enteros no obstante yo podría
llamar a esta función y estar lo
siguiente pasar el valor de 2 y el valor
de 54 y como consecuencia me sumaría un
entero y un flotante
tal y como lo tenemos definido
actualmente no hay nada que nos impida
hacer esto entonces si nosotros queremos
ser más estricto en el cual
especificamos qué tipo de valor
esperamos recibir lo que nosotros
tenemos que hacer es especificar el tipo
de variable que es el que tenemos acá y
ahora como lo vamos a definir muy simple
colocando delante del nombre de esta
variable el tipo de dato que esperamos
recibir de esta manera si yo pongo la
palabra int lo que estoy indicando es
que el valor que nosotros le pasemos acá
debe ser un entero y puedo hacer
exactamente lo mismo con el otro ya que
se supone que esta función es para sumar
enteros y por lo tanto estos dos valores
deben ser entre dos si ahora
yo vengo por acá y actualizó vemos que
el resultado me sale 7 y ahora porque me
está saliendo 7 muy simple como nosotros
hemos especificado que el valor que
tenemos acá es un entero sin embargo le
estamos pasando un flotante lo que va a
ser php es transformar o tratar de
transformarlo en el tipo de valor que
hemos especificado acá al tratar de
transformar este flotante a un entero lo
va a transformar en el valor de 5 y por
lo tanto lo que suma es el valor de 2
más de valor de 5 pero de otras
ocasiones claro en las cuales no va a
poder transformarlo y me elevado un
error como es el caso que escribiéramos
una cadena no sé si coloco una cadena no
lo voy a poder transformar y me va a dar
un error pero volvamos al ejemplo de 5.4
puede ser que eso sea lo que tú estés
buscando que en el caso de que por
ejemplo pasemos un flotante lo trate de
transformar en el tipo de datos que
hemos especificado pero qué tal si
queremos ser más estrictos y queremos
que en el caso de que le pasemos un
valor diferente al tipo que vemos no lo
transformen sino que nos dé un error que
es lo que tenemos que hacer lo que
tenemos que hacer es muy simple en la
parte inicial del fichero dejemos
escribir lo siguiente
declaré y especificamos un tipo estricto
el tip ado va a ser estricto ahora miren
lo siguiente
basta con que yo haya colocado esto que
tengamos acá
ahora cuando le pasó como segundo
parámetro de valor de 5.4 acá mismo en
el editor me amargó un error si pasamos
el mouse gracias a que tengo instalado
php intelligence me indica acá que
esperaba recibir un dato de tipo entero
sin embargo le estamos pasando un dato
de tipo flotante y por tal razón esto si
yo traté de ejecutar me va a dar un
error
si veníamos por acá y actualizamos en
efecto la marca un error y si leemos el
error me dice que la función sumar
enteros los dos argumentos deben ser de
tipo entero sin embargo estamos pasando
un tipo de datos flotante
muy bien entonces de esta manera si
definimos el tipo de datos que esperamos
recibir vamos a ver cómo reducimos
drásticamente los errores que puedan
ocurrir a la hora de ejecutar esta
función perfecto
si lo pongo dos enteros veo que si suma
ahora puede ser que nosotros también
queramos especificar el tipo de dato que
esperamos recibir de esta función en
este caso podríamos especificar por
ejemplo que el tipo de datos que
esperamos recibir sea un entero como
hago esto simplemente después de definir
estos paréntesis que tenemos acá debemos
colocar 12 puntos seguido del tipo de
datos que esperamos recibir por ejemplo
si espero recibir un dato de tipo entero
escribo int y ahorita si retornamos
vemos que funciona pero para hacerlo
fallar por ejemplo qué pasa si la suma
de estos dos números lo dividirse entre
2 esto no me daría ningún error de
sintaxis sumaría dos valores que cinco
más 27 una vez que calcula la suma lo
divide entre 2 o sea lo que me
retornaría es 3.5 pero aún así nos daría
un error por qué razón porque nosotros
hemos especificado acá que el dato que
esperamos recibir es un entero si
venimos por acá clasificamos
encontramos los siguientes
otra cosa que podríamos hacer es definir
qué queremos recibir por ejemplo o la
función espera que nos retorna un valor
entero o un valor flotante como hago eso
simplemente pongo int
esta barrita invertida seguido del
siguiente tipo de datos que esperamos
recibir si hago esto y actualizo vemos
que ahora si no tengo ni un error ya que
especificado que lo que espero recibe
puede ser entero o flotante no obstante
si lo que retornaría esto fuese una
cadena vemos que nuevamente el editor
acá mismo está marcando un error ya que
estamos retornando una cadena sin
embargo más especificado que lo que
debería retornar no es un entero un
flotante y si ejecutamos esto nos da una
qué tipo de datos podemos especificar
que queremos que nos retorne ya sea que
definamos acá o acá qué tipo de datos
podemos especificar podemos especificar
que sea de tipo entero podemos
especificar que sea de tipo flotante
podríamos especificar que se trata
también de un string de un bull ya no
podemos especificar también que se trata
de un array un objeto o que se trata del
valor de nube sin más eso sería todo por
este capítulo te recuerdo que si quieres
apoyar al canal me ayudaría mucho si le
das like a este vídeo y te suscribes al
canal sin más me despido y nos vemos en
un próximo capítulo
Browse More Related Video
04 - Tipos de datos en PHP - Curso PHP 8 desde cero (Actualizado)
Pensamiento computacional: Tipos de datos
🔴Curso de Python #02 - Variables y Tipos de Datos
Be Careful With Return Types In TypeScript
📀 DATOS PRIMITIVOS JAVA | DECLARACIÓN, INICIALIZACIÓN y ASIGNACIÓN Variables ◀️
Protocolos de Comunicaciones
5.0 / 5 (0 votes)