[PHP] Include dentro de una funcion

Iniciado por Alex_bro, 19 Marzo 2009, 17:02 PM

0 Miembros y 1 Visitante están viendo este tema.

Alex_bro

Buenas,
Cada dia se me presentan mas includes al principio de cada fichero... y queria hacer una funcion de Cargar() asignando en los parametros si usare una db o el motor de templates... y para ello necesitaria incluir los ficheros dentro de la funcion... pero no se puede... hay forma? o se les ocurre alguna otra idea?

Gracias!

дٳŦ٭

Si se puede, en tu función:

Código (php) [Seleccionar]

function cargarIncludes($archivos){
    foreach ($archivos as $url) {
         include($url);
             }
}


Suerte


Con sangre andaluza :)


Alex_bro

No pero si el problema es que el include solo se hace dentro de esa funcion, no tiene efectos a nivel global fuera de ella.

Gracias.

дٳŦ٭

Prueba esto:

Código (php) [Seleccionar]
function cargarIncludes($archivos){
    foreach ($archivos as $url) {
        eval(include($url));
             }
}


Con sangre andaluza :)


Alex_bro

Nada, tampoco. De esa forma me ha tirado al principio un error de sintaxis, pero hojeando php.net lo solucione, pero tampoco se soluciona el incluir el archivo de forma global.
Alguna manera tiene que haber para esto tan simple digo yo... o hay forma mas logica de obtener el mismo resultado?

Gracias

дٳŦ٭

mmm pruebalo, a mi me funcionó al 100%:

Código (php) [Seleccionar]
<?php
error_reporting
(E_ALL);
ini_set("display_errors"1);
function 
cargarIncludes($archivos){
    
foreach ($archivos as $url) {
        
include($url);
          
 }
}
$archivos=array('a.php','b.php','c.php');
cargarIncludes($archivos);
print_r($archivos);
?>


Con sangre andaluza :)


Alex_bro

La he usado y cargar cargan perfectamente, pero la idea es usar despues una variable que esté en alguno de esos archivos, o una clase para manejar la db, y entonces no funciona:
Notice: Undefined variable: casa in /blabla.../test.php on line 15

Tu codigo va genial para mostrar los resultados de esos includes, pero no para usar funciones y variables que esten en esos archivos, no se si me explique bien.

Gracias por tu apoyo :D

дٳŦ٭

aaaaaaaaaaaaaaa  ;D

Mira, hay algo que se llama "global" que sirve para usar $variables dentro y fuera que hayan sido declaradas de la función  ;)

Mira:

en a.php tengo:
Código (php) [Seleccionar]
<?php
echo "a";
$laprueba="afffffffffffffffff";
?>


y en shit.php
Código (php) [Seleccionar]
<?php
error_reporting
(E_ALL);
ini_set("display_errors"1);
function 
cargarIncludes($archivos){
global 
$laprueba;
    
foreach ($archivos as $url) {
        
include($url);
          
 }
}
$archivos=array('a.php','b.php','c.php');
cargarIncludes($archivos);
print_r($archivos);
echo 
$laprueba;
?>


Resultado:

aArray (
  • => a.php [1] => b.php [2] => c.php ) afffffffffffffffff

    :xD


Con sangre andaluza :)


Alex_bro

No si eso de global ya lo uso, pero seria una lata declarar globales todas las variables que vaya a usar en esos includes no? jaja, de todas formas eso no seria problema, sino que no se puede declarar global una funcion, o si?
Lo de las variables era un ejemplo, pero lo que yo quiero es usar clases y funciones que estan en esos archivos que quiero incluir.

Siento ser tan pesado  :-[

Gracias!

дٳŦ٭



Con sangre andaluza :)