Foros del Web » Programando para Internet » PHP »

Funciones o Require ? > Dudas/Opiniones

Estas en el tema de Funciones o Require ? > Dudas/Opiniones en el foro de PHP en Foros del Web. Hola, necesito algunas opiniones. Ahí vamos. Actualmente, en mis scripts, creo rutinas de ejecución en archivos separados y las utilizo mediante un require("banner.php"); lo cual ...
  #1 (permalink)  
Antiguo 08/08/2005, 06:02
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 14 años
Puntos: 2
Funciones o Require ? > Dudas/Opiniones

Hola, necesito algunas opiniones.

Ahí vamos. Actualmente, en mis scripts, creo rutinas de ejecución en archivos separados y las utilizo mediante un require("banner.php"); lo cual anda sin problemas.

Ahora bien, en algunas ociaciones veo que me sería más útil crear funciones para, entre otras cosas, mandarle parámetros o simplemente utilizarlas varias veces en un mismo script. pero me surjen algunas dudas:
1) Una funcion, puede recuperar variables establecidas en el script antes de que sea llamada?
2) Cómo puedo devolver al script dos o más variables establecidas en una funcion?

Finalmente, a nivel general, es mejor usar requires/includes o funciones??

muchas gracias
  #2 (permalink)  
Antiguo 08/08/2005, 09:00
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
1) Si, una funcion puede acceder a variables fuera de su ambito, asi:

Código PHP:
<?php
   $var1
="Algo";
   function 
funcion1()
   {
       global 
$var1;
       echo 
$var1//imprimirá "Algo"
   
}
?>
2) serializando o devolviendo un arreglo.

Las funciones pueden estar organizadas en archivos para mejorar el acceso a ellas (para que recordemos donde están y no tener que escribirla muchas veces), por tanto, para usarlas necesitaremos llamarlas a traves de un include(), creo que eso dice todo, son 2 cosas distintas.
  #3 (permalink)  
Antiguo 08/08/2005, 09:10
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 14 años
Puntos: 2
cómo sería la serialización?? ya que una función admite un único return
  #4 (permalink)  
Antiguo 08/08/2005, 09:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Bueno basicamente se trata de definir como viene la variable, usando algo estandar, entiendase hacerlo siempre de la misma forma (consistencia), por ejemplo devolviendo una cadena de este forma:

ses_usuario|s:8:"usuario1";ses_clave|s:8:"usuario1 ";servidor|s:9:"127.0.0.1";

Este es un ejemplo de una cookie de sesion de php, se lee asi:

ses_usuario = es el nombre de la variable
| = separa la variable de su definicion
s = tipo de dato (string)
8 = largo del dato
"usuario1" = valor de la variable
; = separacion entre definiciones de variables
: = separa los componentes de la definicion de la variable
  #5 (permalink)  
Antiguo 08/08/2005, 10:28
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 14 años
Puntos: 2
ahh, es interesante.. había aplicado eso pero no sabía que era serialización...
incluso me había parecido un pecado hacer eso :P pero veo que es algo estandar
  #6 (permalink)  
Antiguo 08/08/2005, 10:45
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Personalmente en las funciones que necesito mas de un valor en el return, las encapsulo en un vector...ej:
Código PHP:
<?php
function algo(){
    
$arr = array();
    
$arr[] = "uno";
    
$arr[] = "dos";
    return 
$arr;
}

$val algo();

echo 
$val[0] ."<br>"#Dara uno
echo $val[1]; #Dara dos
?>
Con el tema de las global, si, suelo hacer eso, aunque podes pasarlas como valores a la funcion tipo: algo($valor);, y hasta como referencias si crees necesario declarandolas como tal en la funcion: function algo(&$valor){...

Salute
__________________
Mi punto de partida es Que Bueno Lo Nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:30.