Как сделать чтобы все переменные, используемые в PHP-сценарии, были глобальными?

HackHits24

Новичок
Как сделать чтобы все переменные, используемые в PHP-сценарии, были глобальными?

Как сделать чтобы все переменные и массивы, используемые в PHP-сценарии были глобальными? Т.е. чтобы эти переменные можно было использовать как внутри функций - так и вне этих функций?

p.s. функций, переменных и массивов в сценарии очень много, поэтому ставить инструкцию global перед каждой переменной внутри функции неудобно.
 

dimagolov

Новичок
HackHits24, ты должен писать код так, чтобы глобальные переменные были не нужны. это возможно. и все технологии программирования, начиная от функций и заканчивая ООП в разных вариациях создавались в течении последних 70 лет именно ради этого, чтобы свести глобальные переменные к минимуму. почитай какие-нибудь книги по основам программирования.
 

HackHits24

Новичок
в моем сценарии от пользователя поступают данные, и создаются переменные соответствующие им.
Далее запускается функция, которая эти переменные изменяет и создает еще несколько своих.
Далее запускается вторая функция, которая изменяет эти же (уже измененные и созданные первой функцией) переменные и тоже создает еще свои. Потом третья и т.д..

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

HraKK

Мудак
Команда форума
Удобно было бы нормально писать приложения, а не писать говнокод, еще и стремясь к нему. Почитайте какие-то что-ли книги по ООП.
 

dimagolov

Новичок
Далее запускается вторая функция, которая изменяет эти же (уже измененные и созданные первой функцией) переменные и тоже создает еще свои. Потом третья и т.д..
а когда запускается предпоследняя ф-я и работает не так, как ожидалось, оказывается, что что ошибка могла быть в ЛЮБОЙ точке кода, который исполнялся до этого, так как ВСЕ переменные менялись ВСЕМИ ф-ями. а когда ф-ий сотни, то найти виноватого становится практически невозможно.
 

HackHits24

Новичок
dimagolov
ну можно просто заключать в комментарии по одной функции, начиная с конца...


а как же тогда сделать, чтобы работал мой "конвейер" с переменными и функциями?) все затрудения с областями видимости...
 

sakon

П..и.н..ок
HackHits24
А может не стоит писать подобное, а придумать, что то более разумное?
Global - это зло
 

HackHits24

Новичок
вообще-то если я не ошибаюсь, можно в каждую функцию в круглых скобках написать аргументы, и передавать параметры по ссылке... но просто не хочется сидеть и переделывать весь код...

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

sakon

П..и.н..ок
(Не обижайся)
А волшебную палочку тебе не надо? Лучше перепеши НОРМАЛЬНО код, и не запаривайся на "конвееры". Это будет разумно и самое главное - безопасно.
 

fixxxer

К.О.
Партнер клуба
HackHits24

Сохрани ссылку на этот топик и зайди года через три. Посмеешься над собой ;)
 

HackHits24

Новичок
два вопроса:
1) Почему все так не любят глобальные переменные? Почему глобал - это зло?

2) Как можно передать переменную из одной функции в другую?
 

sakon

П..и.н..ок
fixxxer
:D

-~{}~ 06.03.10 04:11:

PHP:
 function funk1($a)
{
$b=$a;
    $funk = otherfunk($b)
    return $funk;

}
function otherfunk ($a)
{
    $t = $a*2;

    return $t;
}
 

HackHits24

Новичок
Т.е. мне надо переписать код так, чтобы из первой функции вызывалась вторая, из второй - третья и т.д. "по ступенькам" - получится "лесенка" функций - я правильно понял?
 

HackHits24

Новичок
А в самом начале, когда данные приходят через форму от пользователя - переменные типа $a = $_POST[$a] тоже лучше создавать ВНУТРИ функции, а не снаружи?
 

sakon

П..и.н..ок
1. Ты всегда должен знать какие данные ты ждешь от пользователя.
2. Никогда не верь приходящим данным.
PHP:
if (!empty($_POST['send']))
{
    $name = $_POST['name'];
    //  code
}
else
{
   echo 'Вы зашли хрензнаетоткуда';
   exit();
}
 

HackHits24

Новичок
Но неужели все опытные PHP-программисты пишут сценарии, которые состоят чисто из функций, вызываемых поочередно?
не...что-то тут не то.. Смотри:
Вызывается 1-я функция, обрабатывает переменные - из нее вызывается 2-я функция и тоже обрабатывает эти же переменные - из 2-й вызывается 3-я...и т.д. по лесенке. А потом понадобилось опять обработать эти переменные 2-й функцией, но без вызова 3-й и последующих... что тогда?
 

sakon

П..и.н..ок
1. ООП - Объе́ктно-ориенти́рованное программи́рование.
2. Давай конкретнее, в чем у тебя проблема.
Не стесняйся. здесь всегда подскажут....
 

HackHits24

Новичок
в твоем примере с функциями обе функции возвращают по одной переменной. А как сделать, чтобы функция вернула, например две переменных и один массив?
 
Сверху