Хороший стиль кодинга (глобальные переменные)

idencial

Одинаковый
Хороший стиль кодинга (глобальные переменные)

Разгоревшаяся дисскуссия по поводу register_globals вызвала у меня такой вопрос.

Ведь рано или поздно все все равно перейдут на $_GET, $_POST и др.
А дорогие создатели нам услужили и эти массивы видны в функциях как глобальные, т.е не надо объявлять как global.

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

Как мне кажется это не совсем клево и уж конечно не пример хорошого стиля кодинга.

Мне хотелось бы просто услышать мнения за и против подхода, в котором используются приемущественно глобальные переменные.
 

Crazy

Developer
Re: Хороший стиль кодинга (глобальные переменные)

Автор оригинала: idencial
Таким образом можно вообще дойти до того, что все переменные объявлять как global, а функции вызывать без параметров.
Работать надо меньше, а спать больше. Тогда такой бред не будет приходить в голову. :)
 

idencial

Одинаковый
Работать надо меньше, а спать больше. Тогда такой бред не будет приходить в голову.
согласен
не надо.
они и так глобальные.
см $GLOBALS :)
это то понятно, но суть вопроса не в этом.

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

Так вот мне и кажется, что более хороший стиль все же передавать данные в качестве параметров.
 

Crazy

Developer
Автор оригинала: idencial
Просто, например, если есть функция обработки данных формы,
Если функция обрабатывает именно данные из get/post, то абсолютно незачем передавать их как параметры -- сама возьмет.

Если функция может обрабатывать разные параметры -- передавать ей имена этих параметров.

Если функция может обрабатывать некоторые данные -- в том числе параметры запроса -- то передавать значения.

Все абсолютно однозначно. С глобальностью это вообще никак не связано.
 

Georgy

Guest
Таким образом можно вообще дойти до того, что все переменные объявлять как global, а функции вызывать без параметров.
а чего тебе не нравится - в переле вообще все переменные глобальные, и только те, что ты сам определил как my or local - нет.

так что это и есть хороший стиль (имхо)

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

Crazy

Developer
Специальное объявление доступа к глобальным переменным вообще нехарактерно для современных ЯП. BTW, работа с глобальными переменными хороша в perl при "use strict"...
 

idencial

Одинаковый
если это удобно
С таким подходом у нас в институте один чувак диплом сдавал.
3 тысячи строк кода на VB и не одной функции.
Как мне потом рассыказывали препод по структурам данных и технологии программирования позеленел и настаивал на 2.
Не все что удобно, правильно.
Не даром в свое время перешли к структурному программированию, а затем и к ООП.

Нас просто в свое время в инсте просвещали, что злоупотреблять глобальностью не стоит (т.е использовать только когда очень надо).
Мне было, например, очень сложно читать скрипты чувака, который, видимо, считал, что это удобно и где ни попадя объявлял переменные как global.
 
Сверху