2011-02-02 11 views
5

Ok, tal vez mi cerebro simplemente está apagado, pero no puedo hacer que esto funcione.Variables globales de PHP a través de los archivos

Aquí está el código completo:

pagina1.php:

<?php 
    $something = "hello"; 
    include "Page2.php"; 
?> 

pagina2.php:

<?php 
    echo $something; 
?> 

salida deseada (cuando se navega a pagina1.php):

hello 

Lo real poner está en blanco. He intentado poner la palabra clave global en todos lados, y no pasa nada. ¿Me estoy perdiendo de algo?

+0

global está dentro del alcance de la vinculada/archivos incluidos que se ejecutan desde la página llamada. Dos páginas diferentes llamadas en momentos separados no comparten variables. Si ese fuera el caso, de forma predeterminada, sería una pesadilla. –

+0

* Las páginas no se llaman en horas separadas * – riwalk

+0

Creo que significa que está 'golpeando' a Page1.php con su navegador. – karim79

Respuesta

4

No puedo reproducir este error, intenté esto en mi servidor local y copié y pegué su código desde aquí. Sospecho que tienes algún tipo de error de sintaxis.

Encienda los informes de error y vea si obtiene algún error.

+2

Increíble.No debería haberles nombrado page1 y page2. Tuve página2 marcada por error. +1 por ser 1 de solo 2 personas que leyeron el código :) – riwalk

+1

Oye, todos cometemos errores. :) –

0

Tuve un problema similar ejecutándose en local (Windows) donde los valores de una matriz no seguían más allá de la inclusión dentro del mismo proceso.

Después de cambiar la ruta de inclusión de http://localhost/www/example.php a C:/www/example.php, funciona bien ahora.

1

Sé que esta es una respuesta tardía, pero estoy tratando de hacer algo similar. En primer lugar, cuando haces eco de algo, todavía tienes que ponerlo "". Php lo reconocerá como una variable siempre que pongas $.

En segundo lugar, está incluyendo page2.php en la página1. Fantástico, pero la página 2 no reconoce $ algo. Ahora, si lo hace de otra manera, declare $ algo en la página 2 y luego lo llama desde la página 1 después de incluirlo, se ejecutará.

Modificación de la variable requeriría algo más ...

+0

Incorrecto en ambos casos. La variable $ something es una cadena y, por lo tanto, no necesita conversión adicional. En cuanto a su segundo punto, una prueba simple demuestra que funciona: http://etc.caffeineoncode.com/Page1.php – riwalk

1

Creo que la salida está entrando pagina2.php. Estoy en lo correcto? esto se debe a que está haciendo eco de una variable no configurada en page2.php, necesita cambiar los siguientes datos para que funcione. pagina1.php

<?php 
include("page2.php"); 
echo $something; 
?> 

pagina2.php

<?php 
$something="Hello"; 
?> 

Si lo va a usar y navegar a la página 1.php entonces la salida será Hola