¿Qué es un argumento y por qué es crucial en las funciones?
Los argumentos son un aspecto esencial en la programación, ya que nos permiten pasar información a las funciones para que estas realicen sus tareas con diferentes datos. Un argumento se coloca dentro de los paréntesis de una función y puede ser un valor directo, una variable o un parámetro que se espera recibir. Estos permiten que el código sea más dinámico y reutilizable.
Ejemplo básico de función con argumento
Para ilustrar, vamos a crear una función básica en PHP que salude a una persona. Esta función necesitará un nombre como argumento para saludar correctamente.
En este ejemplo, la función saludar espera recibir un nombre como argumento para generar el saludo de manera dinámica.
¿Cómo se trabaja con referencias en funciones?
Trabajar con referencias en las funciones es una técnica poderosa que te permite modificar directamente las variables fuera de la función. Esto es útil cuando necesitas que los cambios realizados dentro de una función se reflejen en otras partes del programa.
Ejemplo de uso de referencia
Tomemos otro ejemplo donde trabajamos con un curso, el cual queremos cambiar de "PHP" a "Laravel" dentro de una función.
En este caso, la función cambiarCurso usa un parámetro por referencia (&$curso), lo que permite que el cambio afecte la variable $cursoActual fuera de la función.
¿Qué son los parámetros predeterminados y cómo se usan?
Los parámetros predeterminados se utilizan para dar valores por defecto a los argumentos de una función. Esto es útil cuando se desea que una función tenga un comportamiento por defecto, pero también permita personalización.
Ejemplo con valores predeterminados
Vamos a ver un ejemplo de una función de saludo que tiene un nombre predeterminado.
functionsaludar($nombre="Ítalo"){return"Hola, ".$nombre;}echosaludar();// Imprime: Hola, Ítaloechosaludar("Abel");// Imprime: Hola, Abel
En este ejemplo, la función saludar usará "Ítalo" como nombre por defecto, pero si se proporciona otro nombre, este remplazará el valor predeterminado.
Resumen de conceptos claves
Por valores: Pasamos directamente un valor a la función.
Por referencia: Modificamos tanto dentro como fuera de la función al usar &.
Predeterminado: Permitimos que la función use un valor por defecto, a no ser que especifiquemos uno diferente.
¡Entender cómo utilizar argumentos, referencias, y valores predeterminados es fundamental al trabajar con funciones y te ayudará a construir programas más versátiles y robustos! A medida que vayas ganando experiencia, estos conceptos serán indispensables para tu manejo en programación orientada a objetos, ¡así que sigue practicando y experimentando!
Para explicar un poco mejor el paso por referencia:
Cuando usamos una función normalmente y pasamos argumentos, lo que se hace es COPIAR el valor de esa variable al argumento que nosotros hayamos definido en la función.
Cuando hacemos uso del paso por referencia, lo que hacemos en ENVIAR la variable como tal, es decir, aquí ya no se hace una copia de esa variable sino que se envía directamente, lo que nos permite modificar su valor libremente desde dentro de la función.
Muy buena explicacion! Gracias.
gramcias
Mis apuntes
<?php
echo "<h1>Argumentos</h1>";#Valores//Hace referencia a que nosotros colocamos directamente una variable($name) esperando que eso se cumplafunctiongreet($name){return"<h1>Hola, $name</h1>";}echo greet('Danny');#Referencias//Ademas de hacer un cambio interno con la función queremos que este cambio afecte al elemento que tenemos afuera.$course ='PHP';functionpath(&$course){ $course ='Laravel'; echo $course;//Laravel}path($course);echo "<br>";echo $course;//Laravelecho "<br>";#Predeterminado//Asignamos de manera fija un elemento o un valor y podemos alterar el valor con un parametrofunctiongreet1($name ='Danny'){return"Hola, $name";}echo greet1();echo "<br>";echo greet1('Abel');
Me gustan tus aportes amigo! Bien hecho! Te aconsejo que en los comentarios siempre dejar un espacio después de // o el #
Argumentos: Colocamos dentro de los paréntesis, un valor o un parámetro
Referencia Apunta u observa el comportamiento de otro elemento.
valores colocas una variables directamente esperando a que se cumpla.
referencia Además de hacer un cambio interno, también afecte al elemento que este fuera.
Argumentos
Un argumento es lo que colocamos adentro de los paréntesis, este puede ser un valor de forma directa o un parámetro.
Las referencias apunta u observa el comportamiento de otro elemento.
<?php// valoresfunctionsaludo($name){echo"Hola, $name";}saludo('Angél');// refrencias$co='PHP';# si queremos que el resultado de la función modifique# la variable externa, tenemos que poner path(&$co)functionpath($co){$co='Laravel';echo$co;}path($co);echo$co;// predeterminadofunctionsaludos($name='Pikachu'){echo"Hola, $name";}saludos();
Si eres de las personas que ha visto lenguajes como C o C++, esto no será difícil de entender, ya que lo que hace es paso de parámetros por valor y paso de parámetros por referencia. Si quieren una explicación mas detallada y técnica del paso de parámetros por referencia, les recomendaria el curso de POO en C++, . En resumen un paso por valores es que en la función creas una copia del valor y lo trabajas como variable local dentro de la función, por ende el resultado no se afecta a la variable que envias.
Un paso de parámetro por referencia es decirle a la función que no envias una copia sino que envías a la variable para que puedas modificarla ahí dentro, y cuando finalice la función, tengas esa variable modificada. Al principio es difícil entender, pero si aprendes ese concepto en C o C++, lo entenderás mejor.
🔆 Los argumentos de una función pueden ser parámetros o valores.
Hay alguna diferencia? Una es mejor practica que la otra?
Según lo que comprendí, al no indicar un argumento en la función, el valor será laravel el cual no lo podrá cambiar en usuario si lo desea, y el & indica que el resultado que esté dentro de la función, se mostrará fuera de ella.
No funciona igual.
Así como lo tienes la variable adentro de la función solo tiene alcance local y no afecta a la variables global.
forma interesante de entender los ámbitos de las variables!
Excelente explicación. Hace años que uso php y nunca había visto como cambiar el scope de una variable con el &.
para la forma ++predeterminada++ ¿se le puede decir que es un valor por default?
A si lo interpreto yo ya que en otros lenguajes que manejo regularmente para mostrar el valor de una variable para que no sea NULO le damos un valor "por default" (así le llamamos en otros lenguajes)
:)
Como dato interesante, esto entró en las preguntas de Conceptos de PHP donde se hablaba de Composer, y quizás por eso no entendía dicha pregunta. Tal vez se haya pasado debido a que se grabaron los cursos muy de seguido, o yo no lo noté
Una pregunta, ¿Cuándo creo una función PHP, como puedo hacer un enunciado o explicación de la función cuando la llamo?
Ejemplo
{try{ $request->user()->token()->revoke();returnresponse()->json(['message'=>'Se ha cerrado la sesión','data'=>'Se revoco el token']);}catch(\Throwable $th){returnresponse()->json(['error'=> $th->getMessage(),'message'=>'Error en logout'],400);}}```
Mi pregunta aca es la siguiente, sale realmente rentable usar ese tipo de funciones? siento que se puede hacer ese codigo de manera mas sencilla, y mucho mas legible que eso.
🍃 En el código anterior, la variable $course es declarada fuera de la función path() como "PHP". Luego, dentro de la función path(), la variable $course es reasignada como "Laravel".
Cuando se llama a la función path(), se pasa la variable $course como argumento. La función path() reasigna el valor de la variable local $course a "Laravel" y luego lo imprime.
Después de llamar a la función path(), la variable $course fuera de la función todavía tiene su valor original, "PHP". Por lo tanto, cuando se imprime la variable $course fuera de la función, se muestra "PHP".
Esto se debe a que la variable $course dentro de la función path() es una variable local y no afecta al valor de la variable $course global fuera de la función. Para hacer que el valor de la variable global $course cambie, puedes usar la palabra clave global dentro de la función path() para hacer referencia a la variable global:
En este caso, después de llamar a la función path(), la variable global $course cambiará su valor a "Laravel" y ambas llamadas a echo $course imprimirán "Laravel".
Un argumento es lo que colocamos dentro de los paréntesis; este puede ser un valor de manera directa colocando una variable, un parámetro, esperamos algo que sea pasado por allí.
También tenemos el concepto de referencia que vimos en el módulo uno que apunta directamente , u observa directamente el comportamiento de otro elemento.
También vamos a ver el concepto de parámetro o argumento predeterminado.