Ver Mensaje Individual
  #9 (permalink)  
Antiguo 10/05/2010, 15:58
delfina80
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 0
Respuesta: Ambito de variables con objetos

Estoy usando una funcion para importar las clases, la tome de un ejemplo que se dio por aca para que al llamarlas sea mas parecido a Java y se importan como paquetes.

Encontre que si dejo de usar esa funcion y uso el comando require o include directamente me anda bien.

¿Puede ser por el hecho de que el include este dentro de una funcion, no reconozca el valor de las variables?

Estoy probando ahora definiendo en cabecera.php a las variables como globales y al parecer me esta andando.

En definitiva seria:

home.php
Código PHP:
<?php
include './configuracion/config.php'//archivo que tiene la funcion import para traer a los demas scripts
$titulo "mipagina"
$keywords "key1,key2,key3"
import "aplicacion.presentacion.cabecera" ); //me trae a cabecera que lo tengo en /aplicacion/presentacion/cabecera.php
?>
hola mundo! (que original! je!)
<?
import 
"aplicacion.presentacion.piedepagina" ); 
?>
cabecera.php
Código PHP:
<?php
import 
"aplicacion.presentacion.class_metatag.php" ); 
?>
<html>
   <head>
       <?php
       $metatags 
= new MetaTags($titulo,$keywords);
       
$metatags->mostrarMetaTags();
       
?>
   </head>
   <body>
           //.....
Es bastante raro, por lo menos para mi que no tengo mucha experiencia.

Recapitulando:
Si dejo asi como esta $titulo y $keywords no las toma como definidas.

Si en cambio las defino en cabecera.php me anda perfectamente.

Ahora bien si las defino en home.php y en cabecera.php agrego lo siguiente me anda bien:
global $titulo;
global $keywords;


Alguien me podria explicar por que si las defino en cabecera.php no hace falta que las ponga como variables globales, pero si cuando las defino en home.php.
¿Esto es una cualidad de php5?

¿La mejor solución? ¿Las defino globales o dejo de usar la funcion import?