Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > include и глобальная переменная : help


Автор: Didia_Sc 30.11.2004, 13:11
Прива!

Вот такая ситуация:

1. index.php
--------------------
global $a;
$a="слово";
include("print.php");

2. print.php
--------------------------
<?php
....
HTML код
....
print $a;
....
HTML код
....
?>

в результате выполнения index.php все HTML тэги выводятся, а вот значение переменной $a не выводится. Подскажите в чем проблема.

Автор: Opik 30.11.2004, 13:12
Цитата
global $a;

делать не надо, если это не внутри функции =)

Автор: Guest 30.11.2004, 13:41
Цитата(Opr @ 30.11.2004, 13:12)
Цитата
global $a;

делать не надо, если это не внутри функции =)

у меня как раз include из функции выполняется ...

Автор: penizillin 30.11.2004, 15:48
покажите код функции и ее вызова.

Автор: Opik 30.11.2004, 15:51
Дык, переменую ты ж все равно внутрях функции определяешь? )

Автор: penizillin 30.11.2004, 16:27
на то и global, чтоб везде видна была.

Автор: Master 30.11.2004, 17:12
намного дешевле в целях правильного (корректного) кода вообче не рекомендуется использовать глобал, а просто отправить переменную в функцию при вызове.

Автор: Opik 30.11.2004, 20:48
Master
не всегда приемлимо, иногда просто глупо.

Автор: Vaulter 1.12.2004, 08:08
попробуй так:
Код

2. print.php
--------------------------
<?php
....
HTML код
....
global $a;
print $a;
....
HTML код
....
?>

Автор: korob2001 26.5.2006, 14:05
Привет!
Сейчас решил попробовать написать один, не большой, сайт на PHP. Всё вроде нормально, но столкнулся с аналогичной проблемой, с глобальными переменными.

Есть файл PHP такого вида:
Код

<?php
    $language = "";
    // Пордгружаем верхнюю часть страницы
    include_once "tmpl/top.inc";
    if (isset($lang) && ($lang == "fr")) {
        // Если передан параметр lang=fr, подгружаем французскую версию
        include_once "tmpl/fr/about.inc";
        $language = "fr";
    } else {
        // В противном случае подгружаем нидерландскую версию
        include_once "tmpl/nl/about.inc";
       $language = "nl";
    }
    // Подгружаем нижнюю часть страницы
    include_once "tmpl/bot.inc";
?>

Но так как в файлах обоих версий есть навигационное меню, да и просто ссылки, мне нужно привязать к ним этот параметр lang=(nl/fr), пробую сделать следующее:
Код

<?php
echo <<<HTML
<a href="home.php?lang=$language">Home</a><br/>
<a href="photos.php?lang=$language">Photos</a><br/>
// ........
<a href="about.php?lang=$language">About as</a><br/>
HTML
?>

Но переменная $language остаётся пустой, т.е. на выходе я получаю такую ссылку http://host.com/home.php?lang=

Насколько я понял проблема в том, что переменная $language объявлена в файле about.php, а я пытаюсь получить её значение, в файле tmpl/bot.inc, т.е. что-то не допонял по поводу глобальных переменных.
Подскажите, как её правильно объявить, что бы она была видна везде и в подключаемых файлах тоже? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)