Undefined index + $GLOBALS

tonym

Guest
Undefined index + $GLOBALS

устанавливаю в подключаемом через include() файле
PHP:
$GLOBALS['var_name']="value";
после этого в родительском файле вызываю
PHP:
echo $GLOBALS['var_name'];
выводится
PHP:
value
но при этом в лог кладется ошибка Undefined variable: var_name

если устанавливать эту переменную в этом же файле, то все нормально и никаких ошибок не выводит. Почему?
 

Gas

может по одной?
А до инклуда ты не обращаешься к переменной $GLOBALS['var_name'] ?
В сообщении об ошибке указывается строка где она произошла.
 

tonym

Guest
не обращался, указывается именно та строка - в которой обращаюсь после инклуда
 

Gas

может по одной?
странно, так какая всё-таки ошибка "Undefined variable" или "Undefined index"?

PHP:
<?php

 error_reporting(E_ALL);
 include dirname(__FILE__).'/inc2.inc';
 echo $GLOBALS['var_name'];

?>
PHP:
<?php

 $GLOBALS['var_name'] = 10;

?>
вот такой даёт notise?
 

Panchous

Павел
Автор оригинала: tonym
не обращался, указывается именно та строка - в которой обращаюсь после инклуда
ты уверен? сообщение в студию!
какая версия PHP?

У меня все работает без проблем (no warnings).
inc.php:
PHP:
<?
$_GLOBALS['foo'] = "bar";
?>
go.php:
PHP:
<?
include('inc.php');
echo $_GLOBALS['foo'];
?>
 

tonym

Guest
PHP Version 4.3.6

Date time: 2005-02-18 10:53:17 (FLE Standard Time)
Error number: 8
Error type: Notice
Error message: Undefined variable: var_name
Scriptname: z:\home\net\framework\module_select.php
Line: 60

разбираю:
1. устанавливаю переменную $GLOBALS['module_title'] = "main";
2. $path = "framework/" . $GLOBALS['module_title'] . "/lang/ru.php";
3. проверяю is_reabable($path) - читаемый
4. пытаюсь подключить include($path) - подключается, определяет переменную, выводить переменную НО пишет notice

если писать include("framework/main/lang/ru.php") - то notice не выдает.

var_dump($GLOBALS['vars']['module_title']);
>> string(4) "main"
все папки написаны на анг. и переменные тоже
 

Фанат

oncle terrible
Команда форума
tonym
во-первых, зачем ты используешь $GLOBALS?
у тебя все это происходит внутри функций?
во-вторых, зачем ты вообще все это здесь сейчас написал, если у тебя НИГДЕ здесь не упоминается переменная var_name?
 

tonym

Guest
в том то и трабл

- переменная 100% есть в скрипте
-- я ее устанавливал
-- она выводится в браузер без проблем
- я могу ее отследить до и после проблемы
- все нормально и все работает

НО
- загрязняет лог notice'ами
-- все бы ничего, но я использую лог для обнаружения действительных ошибок

обратился сюда собственно потому, что не могу найти реального объяснения этой штуке

2Фанат:
$GLOBALS использую потому, что их всегда и везде видно, при любых include() и т.п.

упростил код как смог. нет смысла постить весь код - его и так много
 

Фанат

oncle terrible
Команда форума
"Папа, с кем ты сейчас разговаривал?"
кому ты это все рассказываешь?
Зачем ты разговариваешь сам с собой?
 

tonym

Guest
Originally posted by Фанат
"Папа, с кем ты сейчас разговаривал?"
кому ты это все рассказываешь?
Зачем ты разговариваешь сам с собой?
ладно.
по моему бесполезно.
всем спасибо.
 

Фанат

oncle terrible
Команда форума
я тоже думаю, что бесполезно.
его просят привести здесь реальный код, а он нам на словах рассказывает, что все у него "100%"
Ему задают вопросы, но ему в ломы на них ответить.
действительно - совершенно бесполезно
 
Сверху