2011-02-02 4 views
5

Хорошо, возможно, мой мозг просто отключен, но я не могу заставить его работать.Глобальные переменные PHP в файлах

Вот полный код:

page1.php:

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

page2.php:

<?php 
    echo $something; 
?> 

Желаемая выход (при переходе к page1.php):

hello 

Настоящий положить пустой. Я попытался поставить глобальное ключевое слово везде, и ничего не происходит. Я что-то упускаю?

+0

Global находится в пределах связанного/включены файлы, запущенные на вызываемой странице. Две разные страницы, называемые в разное время, не разделяют переменные. Если бы это было так, то по умолчанию это был бы кошмар. –

+0

* Страницы не вызывают в разное время * – riwalk

+0

Я думаю, что это означает, что он «бьет» Page1.php со своим браузером. – karim79

ответ

4

Я не могу воспроизвести эту ошибку, просто попробовал это на своем локальном хосте и скопировал и наклеил код отсюда. Я подозреваю, что у вас какая-то синтаксическая ошибка.

Включите отчеты об ошибках и посмотрите, есть ли у вас какие-либо ошибки.

+2

Amazing.Я не должен был называть их page1 и page2. У меня была страница закладок по ошибке. +1 за 1 из 2 человек, которые действительно читают код :) – riwalk

+1

Эй, мы все ошибаемся. :) –

0

У меня была аналогичная проблема, выполняемая на локальном (Windows), где значения массива не следовали за включением в один и тот же процесс.

После включения включают путь от http://localhost/www/example.php к C:/www/example.php, теперь он работает нормально.

1

Я знаю, что это поздний ответ, но я пытаюсь сделать что-то подобное. Прежде всего, когда вы повторяете что-то, вы все равно должны его вставить. Php распознает его как переменную, пока вы ставите $.

Во-вторых, вы включили page2.php в стр. 1. Фантастично, но page2 ничего не признает. Теперь, если вы сделаете это другим способом, объявите $ something на странице2, а затем вызовите его со страницы 1 после его включения, он будет запущен.

Изменение переменной будет требовать что-то еще ...

+0

Неправильно по обоим пунктам. Переменная $ something является строкой и, следовательно, не требует дополнительного преобразования. Что касается вашего второго момента, простой тест доказывает, что он работает: http://etc.caffeineoncode.com/Page1.php – riwalk

1

Я думаю, что выход идет в page2.php. Я прав? это потому, что вы эхом отбрасываете переменную в page2.php, вам нужно изменить следующие данные, чтобы заставить ее работать. page1.php

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

page2.php

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

Если вы будете использовать его и перейдите на страницу 1.php, то выход будет Hello

Смежные вопросы