Foros del Web » Programando para Internet » PHP »

LLamar "function" en un archivo dentro del Switch

Estas en el tema de LLamar "function" en un archivo dentro del Switch en el foro de PHP en Foros del Web. Tengo una duda, cómo puedo hacer que en un Switch se pueda llamar la función del archivo. Por ejemplo: $actionArray = array( 'buscar' => array('Busqueda.php', ...
  #1 (permalink)  
Antiguo 16/10/2009, 20:54
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
LLamar "function" en un archivo dentro del Switch

Tengo una duda, cómo puedo hacer que en un Switch se pueda llamar la función del archivo.

Por ejemplo:

$actionArray = array(
'buscar' => array('Busqueda.php', 'Buscar'),
);

Donde "buscar" se coloca en "?do=buscar" y va al archivo Busqueda.php y selecciona la "function" "Buscar".

¿Cómo lo hago? lo he intentado varias veces de distintas formas y no me da.
  #2 (permalink)  
Antiguo 16/10/2009, 21:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: LLamar "function" en un archivo dentro del Switch

Para incluir el archivo, usa include, y para llamar a la función call_user_func.

Lógicamente, hay que tener un filtro estricto sobre el nombre del archivo que estás incluyendo y la función a la que llamas; de lo contrario, habría problemas de seguridad.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 16/10/2009, 21:07
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: LLamar "function" en un archivo dentro del Switch

Tambien te puede funcionar este, lo prefiero mas que a call_user_func.
php.net/manual/en/function.is-callable.php

Aunque seria de mas ayuda si muestras mas del escenario.
  #4 (permalink)  
Antiguo 16/10/2009, 21:22
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: LLamar "function" en un archivo dentro del Switch

Cita:
Iniciado por Animeonx Ver Mensaje
Tambien te puede funcionar este, lo prefiero mas que a call_user_func.
php.net/manual/en/function.is-callable.php

Aunque seria de mas ayuda si muestras mas del escenario.
Cambié el call_user_func, por el que me dijiste tu, y no funcionó. Gracias a ambos.
  #5 (permalink)  
Antiguo 16/10/2009, 21:59
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: LLamar "function" en un archivo dentro del Switch

Yo utilizo esa funcion en esta funcion, la cual tambien llama a un include y ejecuta una funcion especifica de ese include.

Código PHP:
function mod_check($args=array()){
    if(
is_array($args)){
        
$main $args[0];
        
$mod $main.'.mod.php';
        if(
in_array($mod,scan('/mods'))){
            include_once(
dir_root().'/mods/'.$mod);
            
is_callable($main.'_boot',TRUE,$mod_boot);
            unset(
$args[0]);
            return 
$mod_boot(array_values($args));
        }
    }

Archivo incluido. usuario.mod.php.

Código PHP:
function usuario_boot($options = array()){
    if(
is_array($options)){
        list(
$user,$accion) = $options;
    }
    if(!
$accion==NULL){
        
$accion 'Estas en '.$accion;
    }
    return (
$accion.'<br />Hola '.$user);

  #6 (permalink)  
Antiguo 16/10/2009, 22:13
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: LLamar "function" en un archivo dentro del Switch

uninclude.php
Código PHP:
function ejecutame(){
    return 
'Me ejecutaste';

unarchivo.php
Código PHP:
function incluyeme($include$funcion){
    if(
file_exists('includes/'.$include)){
    include(
'includes/'.$include);
        
is_callable($funcion,true,$funcion_a_ejecutar);
        return 
$funcion_a_ejecutar();
    }
}
incluyeme('uninclude.php','ejecutame'); 
dentro de is_callable($funcion,true,$funcion_a_ejecutar), la funcion ejecutada debe devolver verdadero, pero se puede cambiar a false.
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 13:07.