|
|
|
| Насколько я понимаю, вывод результатов исполнения функции может быть осуществлен посредством return или путем объявления выводимых переменных глобальными.
Последний способ опасен тем, что переменные в функции и в теле скрипта могут совпасть и это нарушит его работу. Однако это очень удобно, если нужно выводить много переменных, некоторые из которых являются массивами.
Поэтому хотелось бы понять, есть ли еще какие-то недостатки использования глобальных переменных?
Может, с позиции безопасности? Или еще чего-то? | |
|
|
|
|
|
|
|
для: Владимир55
(07.07.2012 в 12:38)
| | Не надо путать register_globals с global и $GLOBALS. | |
|
|
|
|
|
|
|
для: Владимир55
(07.07.2012 в 12:38)
| | А в чем сложность с получением результата через return? Просто возвращайте массив или объект с множеством результирующих значений. | |
|
|
|
|
|
|
|
для: cheops
(08.07.2012 в 13:46)
| | return возвращает только одну переменную и потому приходится все возвращаемое запаковывать в один массив. А результаты работы функции получаются в виде трех массивов и нескольких переменных.
Разобраться со всем этим можно. Но если через глобальные переменные можно работать с тем же успехом, то было бы удобнее. | |
|
|
|
|
|
|
|
для: Владимир55
(08.07.2012 в 14:25)
| | Работать можно, только возникает вероятность, что вы задействуете еще одну переменную с таким же именем и функция вам его перепишет, что приведет к ошибке, которую нужно будет довольно долго искать и исправлять. Если не пользоваться глобальными переменными (или использовать для них пространство имен) этот тип ошибок можно исключить полностью. Однако, массив, сам может выступать в виде своеобразного пространства имен, объект делает это еще лучше.
В короткой программе это не очень видно, но в объемном проекте эти мелочи имеют склонность вытекать в довольно крупные неприятности. | |
|
|
|