Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Псевдо-глобал 
:(
    Опции темы
szz
Дата 29.5.2006, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Такая ситуация...  Уже написано много кода, предполагающего, что он бежит в global scope, вот например, фрагмент из этого кода:
Код

// например, это файл "some_var.php"
<?
$some_var = 25;
function echo_some_var(){
    global $some_var;
    echo "some var is $some_var.";
}
echo_some_var();
?>

Вот. Писал я, писал - и написал кучу кода такого. А вот теперь понадобилось вставлять его внутри какой-то функции:
Код

function include_some_file($filename){
   include_once("$filename.php");
}
include_some_file("some_var");

   И все, я попал!  $some_var теперь не глобальная, а локальная переменная функции include_some_file.
Как решить, не переписывая включаемые файлы (кода действительно много). Причем эти файлы могут включать другие, а те в свою чередь третьи и тд.
  Согласен на любые грязные трюки, даже с evalом  smile  


--------------------
PM   Вверх
Mal Hack
Дата 29.5.2006, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Писать в $GLOBALS, но мне кажется, что архитектура скрипта не продумана. 
PM ICQ   Вверх
szz
Дата 29.5.2006, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



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


--------------------
PM   Вверх
szz
Дата 1.6.2006, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



А что если я сделаю так:
 1. Соберу скрипт в одну переменную-стринг (вставив вместо include-require-once содержимое вставляемых файлов - рекурсивно)
 2. Сотру из этой строки все функции и классы (собрав их в другой переменной)
 3. Заменю все переменные $var на $GLOBALS['var']
 4. Засуну фнкции-классы обратно где были.
 5. Эвал!

    Прежде чем это сделать скажите, что я не учел в этой схеме. 


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.