Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
3 / 3 / 2
Регистрация: 05.01.2013
Сообщений: 264

Что делать с переменными, объявленными как globals?

10.02.2016, 15:58. Показов 641. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть старый кривой скрипт с переменными, объявленными как globals, который не работает. Каким способом поправить это дело, не включая глобальные переменные?
У меня возникла идея поменять везде $varname на $GLOBALS[ 'varname' ], но это долго, ибо скрипт большой. Есть ли какой-нибудь иной выход?
Еще есть вариант, конечно, передавать переменные в качестве параметров методам и функциям, но это еще дольше.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2016, 15:58
Ответы с готовыми решениями:

Как работать с переменными, объявленными в другом классе?
Добрый день! Помогите, пожалуйста, объявила через конструктор переменные. затем запускается Menu(). Оттуда переходим в Ans1. Как...

Что делать с переменными a, b и c?
Составил программу по задаче: даны действительные числа x, y, z. Удвоить эти числа, если x≥y≥z и заменить их абсолютными...

Что делать с неиспользуемыми переменными ?
Есть у меня в программе пара вызовов процедур результаты работы которых я не использую, например, ниже не используется переменная Shift...

11
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
10.02.2016, 16:08
PhpNewbie, Вы переделывать в текстовике собрались что-ли и что для вас значит долго и большой скрипт?
А так да, всё русками надо делать, но если вы хотите всё это делать из-за того что у вас не видна где-то глобаная переменная, то думаю её проще будет исправить чем испровлять весь код
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
10.02.2016, 16:13
В том же Notepad++ меняете $varname на $GLOBALS[ 'varname' ] одной кнопкой...
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
10.02.2016, 16:16
Цитата Сообщение от PhpNewbie Посмотреть сообщение
объявленными как globals, который не работает
А не global $varname ?
Цитата Сообщение от PhpNewbie Посмотреть сообщение
поменять везде $varname на $GLOBALS[ 'varname' ]
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
10.02.2016, 16:16
Пифагор, Нее ) переменная $varname может быть как глобальной так и локальной
0
3 / 3 / 2
Регистрация: 05.01.2013
Сообщений: 264
10.02.2016, 16:17  [ТС]
Ну есть старый скрипт, который писал не я, он достаточно объемный, чтобы просто взять его и нормально переписать без всяких там global переменных. Я никогда в жизни ими не пользовался и не понимаю, как они работают.
Я так понял, их значения даже между скриптами передаются?
Грубо говоря, если я заменю все, объявленное, как
global $varname;
на $GLOBALS[ 'varname' ];
Оно будет эквивалентно или нет?
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
10.02.2016, 16:18
Пифагор, Можно попробывать phpStorm и Find in usages (Выделев переменную), ещё как не шло )
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
10.02.2016, 16:21
Цитата Сообщение от PhpNewbie Посмотреть сообщение
global $varname;
на $GLOBALS[ 'varname' ];
Это одно и тоже.. Наверно нужно начинать с того, почему скрипт не работает какие ошибки пишет и т.д.
0
3 / 3 / 2
Регистрация: 05.01.2013
Сообщений: 264
10.02.2016, 16:46  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
Это одно и тоже.. Наверно нужно начинать с того, почему скрипт не работает какие ошибки пишет и т.д.
Ну не совсем.
Была такая ситуация:
PHP
1
2
3
4
5
6
7
$object = getObject();
 
function func()
{
  global $object;
  vardump($object);
}
Возвращало null. Поменял на
PHP
1
2
3
4
5
6
$GLOBALS[ 'object' ] = getObject();
 
function func()
{
  vardump($GLOBALS[ 'object' ]);
}
Заработало нормально.

Добавлено через 12 минут
Вощем вот код прямо из скрипта:
PHP
1
2
3
4
5
6
$link = mysqli_connect("localhost", "blabla", "password", "blabla");
... много функций
function func($sql){
    global $link;
    $res = mysqli_query($link,$sql);
}
Вылазит ошибка, что первый параметр $link равен null.
Если поменять на $GLOBALS[ 'link' ] везде, все прекрасно работает.
Этот скрипт инклудится к другим скриптам, которые вызывают функцию func для доступа к БД.
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
10.02.2016, 17:05
PhpNewbie, Ну так это из серии, что будет a или b
PHP
1
2
3
4
5
6
7
8
9
$link  = "a";
function b()
{
 global $link;
    $link = 'b';
    unset($link);
}
b();
echo $link;
0
3 / 3 / 2
Регистрация: 05.01.2013
Сообщений: 264
10.02.2016, 17:12  [ТС]
Цитата Сообщение от xpoince Посмотреть сообщение
PhpNewbie, Ну так это из серии, что будет a или b
Честно, я не знаю, что будет и не хочу знать. Глобальные переменные сам лично никогда не использовал и не собираюсь, но скрипт нужно заставить работать. Благо, что замена на $GLOBALS, походу, работает.
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
10.02.2016, 17:33
Цитата Сообщение от PhpNewbie Посмотреть сообщение
не хочу знать
Ну тогда так и будете всегда долбится в код и думать почему не работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2016, 17:33
Помогаю со студенческими работами здесь

Не могу разобраться с одной задачей. Как тут вообще что делать? Знаю, что нужно использовать массив, но как?
Вывести последовательность dk, dk–1, …, d0 десятичных цифр числа 5^100, т.е. такую целочисленную последовательность, в которой каждый член...

подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать
Вывод В выходной файл выведите одно число - сколько ударов сделали часы за этот отрезок времени.

Что делать на что обратить внимание и как тестировать монитор
+ входит ли в гарантию уровень каких-либо засветок - считается ли это браком или как-то регламентируется для каждой модели? Проблема...

Что мне делать или что надо знать перед тем как начать изучение яз.программирования С/С++?
Я пока вообще не умею программировать.Сначала хотел с бейсика или паскаля.Но многие советуют начинать сразу с С/С++.

Подскажите что делать. Знаю что надо перегрузить оператор но никак не могу понять как это сделать
#include "stdafx.h" #include <iostream> #include <conio.h> #include <Windows.h> #include <string> using namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru