14.5 - Funciones con tipado definido en PHP - Curso PHP 8 desde cero (Actualizado)

Coders Free
2 Mar 202208:00

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

00:00

📚 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.

05:01

🛠 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

Una función en programación es un bloque de código diseñado para realizar una tarea específica. En el guion, se menciona la creación de una función llamada 'sumar enteros', que tiene como objetivo sumar dos valores enteros. Esto es fundamental para entender cómo se estructuran y se utilizan las funciones en el lenguaje de programación PHP, que es el tema central del video.

💡Parámetros

Los parámetros son valores que se pasan a una función para que pueda utilizarlos durante su ejecución. En el guion, se habla de dos parámetros llamados 'entero uno' y 'entero dos', que son los valores que la función 'sumar enteros' espera recibir para realizar la suma. Esto es crucial para la comprensión de cómo se interactúan los datos dentro de una función.

💡Tipo de dato

El tipo de dato define el tipo de valores que puede contener una variable o los parámetros de una función. En el guion, se discute la especificación de tipos de datos para los parámetros de la función, como 'int' para enteros, lo que garantiza que la función opere solo con valores enteros. Esto es importante para la seguridad y la precisión en la programación.

💡Tipo estricto

El tipo estricto es una característica en algunos lenguajes de programación que requiere que los tipos de datos sean explícitos y no se puedan cambiar implícitamente. En el guion, se menciona la declaración de 'tipo estricto' en PHP, lo que evita que se pase un tipo de dato incorrecto a una función, mejorando la robustez del código.

💡Error

Un error en programación es una condición que impide que un programa se ejecute correctamente. En el guion, se describe cómo se pueden generar errores si se pasa un tipo de dato incorrecto a una función, como un flotante en lugar de un entero. Esto es esencial para entender la importancia de la validación de tipos de datos en la programación.

💡Valor de retorno

El valor de retorno es el resultado que una función devuelve después de completar su ejecución. En el guion, se habla de cómo la función 'sumar enteros' devuelve la suma de los dos enteros. Esto es fundamental para entender cómo se manejan los resultados en las funciones y cómo se pueden utilizar esos resultados en el programa principal.

💡Variable

Una variable es un contenedor que almacena datos en la memoria de una computadora. En el guion, se menciona la definición de una variable llamada 'resultado' para almacenar el valor retornado por la función 'sumar enteros'. Esto es crucial para entender cómo se almacenan y se utilizan los datos en la programación.

💡Flotante

Un flotante es un tipo de dato que representa números con decimales. En el guion, se discute cómo se puede pasar un valor flotante a una función que espera enteros, lo que puede causar errores o conversión de tipos. Esto es importante para entender las diferencias entre los tipos de datos y cómo afectan la ejecución de una función.

💡Cadena

Una cadena es un tipo de dato que representa texto. En el guion, se menciona que si se pasa una cadena a una función que espera enteros, se generará un error. Esto es relevante para entender la importancia de la consistencia en los tipos de datos y cómo estos errores pueden ser evitados.

💡Array

Un array es una estructura de datos que puede almacenar múltiples valores en una sola variable. Aunque no se menciona directamente en el guion, es un tipo de dato que se puede especificar en la programación y es relevante para entender la manipulación de conjuntos de datos en programación.

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

play00:00

para este capítulo quiero hacer lo

play00:02

siguiente quiero definir una función una

play00:05

función que se llame por ejemplo sumar

play00:08

enteros

play00:10

y vamos a especificar que esta función

play00:13

espera recibir dos parámetros un

play00:16

parámetro que se llame entero uno y un

play00:20

segundo parámetro que se llame entero

play00:23

dos muy bien y lo que quiero que haga

play00:26

esta función es que sume estos dos

play00:30

valores entonces lo que yo podría hacer

play00:32

acá es lo siguiente pedir que me retorne

play00:35

la suma del entero 1 más la suma del

play00:40

entero 2

play00:42

y luego por fuera podría

play00:45

[Música]

play00:46

y definir una variable llamada resultado

play00:48

y en esta variable almacenar lo que me

play00:51

retorna la función sumar enteros podría

play00:55

llamar entonces a esa función y pasarle

play00:57

dos valores por ejemplo el valor de 2 y

play01:00

el valor de 5 una vez que ya tengo

play01:02

rescatado lo que me retorna esta función

play01:05

podría imprimir lo que tengo almacenado

play01:08

en la variable de resultado lo que

play01:11

debería ocurrir ahora es que en pantalla

play01:14

se muestre el valor de 7 ya que es la

play01:17

suma de estos dos valores si ahora vengo

play01:19

por aquí y actualizo vemos que

play01:22

efectivamente lo que me sale es el valor

play01:24

de 7 pero ahora aquí nos podemos

play01:27

enfrentar a un inconveniente y es que

play01:31

imaginemos que hemos definido esta

play01:33

función para que sume exclusivamente a

play01:37

valores enteros no obstante yo podría

play01:39

llamar a esta función y estar lo

play01:41

siguiente pasar el valor de 2 y el valor

play01:44

de 54 y como consecuencia me sumaría un

play01:47

entero y un flotante

play01:50

tal y como lo tenemos definido

play01:52

actualmente no hay nada que nos impida

play01:55

hacer esto entonces si nosotros queremos

play01:58

ser más estricto en el cual

play02:01

especificamos qué tipo de valor

play02:03

esperamos recibir lo que nosotros

play02:05

tenemos que hacer es especificar el tipo

play02:07

de variable que es el que tenemos acá y

play02:10

ahora como lo vamos a definir muy simple

play02:14

colocando delante del nombre de esta

play02:17

variable el tipo de dato que esperamos

play02:20

recibir de esta manera si yo pongo la

play02:23

palabra int lo que estoy indicando es

play02:25

que el valor que nosotros le pasemos acá

play02:28

debe ser un entero y puedo hacer

play02:32

exactamente lo mismo con el otro ya que

play02:34

se supone que esta función es para sumar

play02:37

enteros y por lo tanto estos dos valores

play02:40

deben ser entre dos si ahora

play02:43

yo vengo por acá y actualizó vemos que

play02:47

el resultado me sale 7 y ahora porque me

play02:50

está saliendo 7 muy simple como nosotros

play02:53

hemos especificado que el valor que

play02:55

tenemos acá es un entero sin embargo le

play02:58

estamos pasando un flotante lo que va a

play03:00

ser php es transformar o tratar de

play03:03

transformarlo en el tipo de valor que

play03:05

hemos especificado acá al tratar de

play03:07

transformar este flotante a un entero lo

play03:10

va a transformar en el valor de 5 y por

play03:13

lo tanto lo que suma es el valor de 2

play03:15

más de valor de 5 pero de otras

play03:18

ocasiones claro en las cuales no va a

play03:20

poder transformarlo y me elevado un

play03:22

error como es el caso que escribiéramos

play03:24

una cadena no sé si coloco una cadena no

play03:27

lo voy a poder transformar y me va a dar

play03:29

un error pero volvamos al ejemplo de 5.4

play03:32

puede ser que eso sea lo que tú estés

play03:35

buscando que en el caso de que por

play03:37

ejemplo pasemos un flotante lo trate de

play03:39

transformar en el tipo de datos que

play03:41

hemos especificado pero qué tal si

play03:43

queremos ser más estrictos y queremos

play03:45

que en el caso de que le pasemos un

play03:48

valor diferente al tipo que vemos no lo

play03:51

transformen sino que nos dé un error que

play03:54

es lo que tenemos que hacer lo que

play03:56

tenemos que hacer es muy simple en la

play03:57

parte inicial del fichero dejemos

play04:00

escribir lo siguiente

play04:02

declaré y especificamos un tipo estricto

play04:07

el tip ado va a ser estricto ahora miren

play04:10

lo siguiente

play04:12

basta con que yo haya colocado esto que

play04:14

tengamos acá

play04:15

ahora cuando le pasó como segundo

play04:17

parámetro de valor de 5.4 acá mismo en

play04:21

el editor me amargó un error si pasamos

play04:23

el mouse gracias a que tengo instalado

play04:26

php intelligence me indica acá que

play04:29

esperaba recibir un dato de tipo entero

play04:31

sin embargo le estamos pasando un dato

play04:35

de tipo flotante y por tal razón esto si

play04:38

yo traté de ejecutar me va a dar un

play04:39

error

play04:40

si veníamos por acá y actualizamos en

play04:43

efecto la marca un error y si leemos el

play04:46

error me dice que la función sumar

play04:49

enteros los dos argumentos deben ser de

play04:52

tipo entero sin embargo estamos pasando

play04:54

un tipo de datos flotante

play04:57

muy bien entonces de esta manera si

play05:00

definimos el tipo de datos que esperamos

play05:02

recibir vamos a ver cómo reducimos

play05:05

drásticamente los errores que puedan

play05:07

ocurrir a la hora de ejecutar esta

play05:09

función perfecto

play05:13

si lo pongo dos enteros veo que si suma

play05:15

ahora puede ser que nosotros también

play05:19

queramos especificar el tipo de dato que

play05:22

esperamos recibir de esta función en

play05:25

este caso podríamos especificar por

play05:28

ejemplo que el tipo de datos que

play05:30

esperamos recibir sea un entero como

play05:33

hago esto simplemente después de definir

play05:35

estos paréntesis que tenemos acá debemos

play05:38

colocar 12 puntos seguido del tipo de

play05:41

datos que esperamos recibir por ejemplo

play05:43

si espero recibir un dato de tipo entero

play05:46

escribo int y ahorita si retornamos

play05:50

vemos que funciona pero para hacerlo

play05:53

fallar por ejemplo qué pasa si la suma

play05:57

de estos dos números lo dividirse entre

play05:59

2 esto no me daría ningún error de

play06:01

sintaxis sumaría dos valores que cinco

play06:05

más 27 una vez que calcula la suma lo

play06:07

divide entre 2 o sea lo que me

play06:09

retornaría es 3.5 pero aún así nos daría

play06:13

un error por qué razón porque nosotros

play06:16

hemos especificado acá que el dato que

play06:18

esperamos recibir es un entero si

play06:21

venimos por acá clasificamos

play06:23

encontramos los siguientes

play06:26

otra cosa que podríamos hacer es definir

play06:28

qué queremos recibir por ejemplo o la

play06:32

función espera que nos retorna un valor

play06:34

entero o un valor flotante como hago eso

play06:37

simplemente pongo int

play06:40

esta barrita invertida seguido del

play06:43

siguiente tipo de datos que esperamos

play06:45

recibir si hago esto y actualizo vemos

play06:47

que ahora si no tengo ni un error ya que

play06:51

especificado que lo que espero recibe

play06:53

puede ser entero o flotante no obstante

play06:56

si lo que retornaría esto fuese una

play06:58

cadena vemos que nuevamente el editor

play07:01

acá mismo está marcando un error ya que

play07:03

estamos retornando una cadena sin

play07:06

embargo más especificado que lo que

play07:08

debería retornar no es un entero un

play07:09

flotante y si ejecutamos esto nos da una

play07:15

qué tipo de datos podemos especificar

play07:17

que queremos que nos retorne ya sea que

play07:20

definamos acá o acá qué tipo de datos

play07:24

podemos especificar podemos especificar

play07:25

que sea de tipo entero podemos

play07:28

especificar que sea de tipo flotante

play07:31

podríamos especificar que se trata

play07:35

también de un string de un bull ya no

play07:37

podemos especificar también que se trata

play07:39

de un array un objeto o que se trata del

play07:43

valor de nube sin más eso sería todo por

play07:47

este capítulo te recuerdo que si quieres

play07:49

apoyar al canal me ayudaría mucho si le

play07:51

das like a este vídeo y te suscribes al

play07:54

canal sin más me despido y nos vemos en

play07:56

un próximo capítulo

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
ProgramaciónPHPFuncionesTipos de DatosEstrictoErroresVariablesEjemplosTutorialCódigo
هل تحتاج إلى تلخيص باللغة الإنجليزية؟