Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   ayuda con la funcion func_get_args() (https://www.clubdelphi.com/foros/showthread.php?t=52802)

gabrielflowers 31-01-2008 16:57:04

ayuda con la funcion func_get_args()
 
hola, tengo dudas sobre esta funcion, en el help de php dice que es para obtener una matriz con los argumentos de una funcion [argumentos pasados únicamente, y no toma en cuenta las argumentas predeterminados (no pasados)], ademas encontre este code:
Código PHP:

<?php
function foo()
{
    
$num_args func_num_args();
    echo 
"Numero de argumentos: $num_args<br />\n";
    if (
$num_args >= 2) {
        echo 
"El segundo argumento es: " func_get_arg(1) . "<br />\n";
    }
    
$lista_args func_get_args();
    for (
$i 0$i $num_args$i++) {
        echo 
"El argumento $i es: " $lista_args[$i] . "<br />\n";
    }
}
foo(123);
?>

pero eso me hace pensar que uno puede pasar argumentos a una funcion sin que estos se declaren dentro de la funcion [es decir function f3()]??? eso es asi????, espero haya sido claro, espero sus opiniones, gracias

dec 31-01-2008 17:02:22

Hola,

Así es como dices. Las funciones aceptan un número de parámetros variable. Cuando esto es así, funciones como "func_num_args()" son muy útiles. En todo caso ten en cuenta que el que puedas hacerlo no quiere decir que debas hacerlo. Habrá veces que sea útil, y las habrá en que complique el asunto innecesariamente y haga más complicada la lectura del código fuente. Tú decides. ;)

gabrielflowers 31-01-2008 17:06:44

entonces con que nombre usaria los parametros no declarados como argumentos, dentro del cuerpo de la funcion???, con sus nombres originales??, y eso implicaria que estos parametros deben ser pasados por referencia pues apuntan a un mismo sector de memoria??, tengo estas dudas

dec 31-01-2008 17:33:17

Hola,

Pues usando, por ejemplo, la función "func_get_arg()". El que los parámetros se envíen por valor o por referencia no se determina en el prototipo de la función, sino de cuando se use la propia función: puedes pasar parámetros por valor o por referencia, como quieras.

Código PHP:

<?php

function Foo(){

  
// Miramos si tenemos un argumento
  
if(func_num_args() == 1){
    
// Guardamos su valor en $param1
    
$param1 func_get_arg(0);
    
// Y a modo de ejemplo lo mostramos
    
printf('<div>Parámetro 1 = %s</div>'$param1);
  }else{
    
// No hay ningún argumento (o hay más de uno)
      
  
}
  return 
true;  
}

Foo('ClubDelphi');

?>



La franja horaria es GMT +2. Ahora son las 02:07:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi