No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de Manejo de Datos en PHP

Curso de Manejo de Datos en PHP

Profesor Italo Morales F

Profesor Italo Morales F

Argumentos

8/16
Recursos

Aportes 39

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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.

Mis apuntes


<?php
echo "<h1>Argumentos</h1>";

#Valores
//Hace referencia a que nosotros colocamos directamente una variable($name) esperando que eso se cumpla
function greet($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';
function path(&$course){
	$course = 'Laravel';
	echo $course; //Laravel
}

path($course);
echo "<br>";
echo $course; //Laravel

echo "<br>";

#Predeterminado
//Asignamos de manera fija un elemento o un valor y podemos alterar el valor con un parametro
function greet1($name = 'Danny'){
	return "Hola, $name";
}

echo greet1();
echo "<br>";
echo greet1('Abel');

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

// valores
function saludo($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)
function path($co)
{
    $co = 'Laravel';
    echo $co;
}

path($co);
echo $co;

// predeterminado
function saludos($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.

function greet($name)
{
  echo 'Hola ', $name;
}

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 鈥減or 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茅

Yo no hice lo del password, pero si hice un helper. que me permite instancia la clase validate de una forma mas bonita dir铆a yo

<?php

if (! function_exists('email') ) 
{
	function email($email)
	{
	 	return App\Validate::email($email);
	}
}

馃崈 En el c贸digo anterior, la variable $course es declarada fuera de la funci贸n path() como 鈥淧HP鈥. Luego, dentro de la funci贸n path(), la variable $course es reasignada como 鈥淟aravel鈥.

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 鈥淟aravel鈥 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, 鈥淧HP鈥. Por lo tanto, cuando se imprime la variable $course fuera de la funci贸n, se muestra 鈥淧HP鈥.

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:

$course = "PHP";

function path() {
  global $course;
  $course = "Laravel";
  echo $course;
}

path();

echo $course;

En este caso, despu茅s de llamar a la funci贸n path(), la variable global $course cambiar谩 su valor a 鈥淟aravel鈥 y ambas llamadas a echo $course imprimir谩n 鈥淟aravel鈥.

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

Resumen de la clase

<?php
/* function greet($name){
    return "Hello $name";
}

echo greet('World');
 */
//Referencias
$course = 'PHP';
function path(&$course){
    $course = 'Laravel';
    echo $course;
}

path($course);
echo '<br>';
echo $course;
echo '<br>';

function greet($name = 'World'){
    return "Hello $name";
}   

echo greet();
echo '<br>';
echo greet('Abel');


A veces olvidamos cosas tan sencillas como el paso por referencia, que en la vida real complicamos en nuestros trabajos.

驴A poco no les pasa?

8. Argumentos

Argumento es un valor, Referencia es apuntar u observar un valor, y vamos a aprender sobre predeterminado.

Referencias: Al agregar un & antes de la variable, lo que hacemos es pasarla 鈥減or referencia鈥, pasandoun apuntador a la variable, lo que ocasiona que cuandomodificamos la variable dentro de la funci贸n, externamentetambi茅n es afectada

Comparto el c贸digo de la clase:

<?php
/*
function greet($name)
{
    return "Hola, $name <br>";
}

echo greet('Aldo');
*/

/**
 * Referencias: Al agregar un & antes de la variable,
 * lo que hacemos es pasarla "por referencia", pasando
 * un apuntador a la variable, lo que ocasiona que cuando
 * modificamos la variable dentro de la funci贸n, externamente
 * tambi茅n es afectada
*/

$course = 'PHP';
function path(&$course)
{
    $course = 'Laravel<br>';
    echo $course;
}

path($course);
echo $course; // Laravel

// Predeterminado, valor por defecto

function greet($name = 'Aldo')
{
    return "Hola, $name <br>";
}

echo greet();//Hola Aldo
echo greet('Abel');//Hola Abel

argumentos y par谩metros son conceptos diferentes. Por ejemplo, para la siguiente funci贸n (o m茅todo si se est谩 dentro de una clase) los argumentos vienen siendo las variables que se definen entre los par茅ntesis ($nombre y $apellido)

function mostrar_nombre($nombre, $apellido) {
  echo "Hola, $nombre $apellido";
}

Mientras que los par谩metros corresponden a aquellos valores que se establecen al ejecutar la funci贸n ($mi_nombre y 'G贸mez')

$mi_nombre = 'C茅sar';
mostrar_nombre($mi_nombre, 'G贸mez');

Creo que esta clase deber铆a llamarse par谩metros mas que argumentos鈥 https://www.geeksforgeeks.org/difference-between-argument-and-parameter-in-c-c-with-examples/

Dejo por aqu铆 el Repositorio en github por si lo necesitan :3

Tambi茅n los argumentos pueden ser pasados v铆a

  1. Variable-length argument lists

Utilizando el token 鈥$identificador

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

  1. Named Arguments

Introducidos en PHP 8.0.0 Los argumentos con nombre se pasan anteponiendo el valor al nombre del par谩metro seguido de dos puntos. Se permite el uso de palabras clave reservadas como nombres de par谩metros. El nombre del par谩metro debe ser un identificador


<?php
// argumentos por valor
array_fill(0, 100, 50);

// named arguments:
array_fill(start_index: 0, count: 100, value: 50);
?>

Explicaci贸n de variables por referencia.

Yo es que lo veo una muy mala pr谩ctica, pero鈥 驴en qu茅 caso es recomendable pasar variables por referencia?

Muy buena explicaci贸n. Easy!

Excelente explicaci贸n. Gracias Italo.

Excelente

Asi solo el ejemplo de valores me muestra 鈥淗ola $name鈥 pero cuando agrego al final el cierre ?> ahi si recien me carga correcto 鈥淗ola Renzo鈥

Los argumentos son los valores que van dentro de los par茅ntesis a la hora de llamar una funci贸n.

<h4>Valores</h4>

Es la forma m谩s com煤n de pasar argumentos a una funci贸n. Simplemente se le pasa el valor deseado y esta ejecuta el c贸digo que contiene.

<h4>Referencias</h4>

Si realizamos un cambio al argumento dentro de la funci贸n, este solo mantendr谩 el nuevo valor dentro de dicha funci贸n. Si se consulta el valor fuera, ser谩 el que ten铆a antes de llamar a la funci贸n.

Para hacer que el valor de fuera de la funci贸n tambi茅n cambie se utiliza el par谩metro por referencia, esto hace que a la funci贸n se le pase la referencia del valor que est谩 afuera y al modificarlo se mantengan esos cambios fuera de la funci贸n.

<h4>Predeterminado</h4>

Para darle un valor predeterminado a un argumento se hace como cualquier asignaci贸n a una variable, si al llamar la funci贸n no se le da un valor tomar谩 el predeterminado

Pasa de parametros por valor, bueno no hay modificador cuando entra a la funci贸n; pero en el paso por referencia si cambia de $x a &$x cuando lo escribirmos en el encabezado de la funci贸n.
Y por default, asignamos un valor a la variabel dentro del encabezado de la funci贸n.
$x=鈥淰alor por defecto鈥

Explicaci贸n de datos predeterminados.

buen铆simo el Tip en el parametro!

<?php
//referencia
$course="variable";
function sinReferencia($course)
{
    $course ="nuevo nombre";
    echo "en este codigo la variable curso no ha cambiado =  $course     ";

}
function conReferencia(&$course)
{
    $course="nombre nuevo establecido";
    echo "el nombre nombre es = $course   ";

}
sinReferencia($course);
conReferencia($course);
echo $course;

Argumentos de PHP

  1. Valores
  2. Referencia
  3. Predeterminado

Con estas explicaciones ya le voy tomando el gusto a PHP.

Mis anotaciones las complemento con los aportes que dejan los dem谩s, gracias.

// funciones con valores

function greet($name){
    return "hola, $name";
}

echo greet('Jhon')."</br>";

/**
 * Referencia no cambia el valor de la variable ssin hacer el llamado de la funcion
 */

 $course = 'PHP';
 function path($course)
 {
     $course = 'Laravel';
     echo $course."</br>" ;
 }

 path($course)."</BR>";
 echo $course."</br>";

 // modificar valores con & parametro de referencia

 $course = 'PYTHON';
 function path2(&$course)
 {
     $course = 'KOTLIN';
     echo $course."</br>" ;
 }

 path2($course);
 echo $course."</br>";

 /**
  * prederteminado se asigna un valor en la funci贸n y luego se puede llamar 
  * y cambiarle su valor.
  */

  function greet2($name = 'Anderson')
  {
      return "Hola compa帽ero, $name </br>";
  }

  echo greet2()."</br>";
  echo greet2('Alonso')."</br>";```
<?php

//Trabajar con valores
function greet($name){
    return"Hola, $name <br>";
}
echo greet('Guillermo Pagan');

//Trabajar con referencias parametro de referencia & con este parametro se cambia el valor de la variable course
$course = 'PHP';
function path(&$course){
    $course = 'Laravel';
    echo "$course <br>";
}

path($course);
echo "$course <br>";

//Trabajar con valores predeterminados
function saludar($name = 'Invitado'){
    return "Hola, $name <br>";
}

Tres tipos de argumentos en PHP
Por valores
Por referencias
y Predeterminado