На самом деле:объект получается как фотон - обладает одновременно свойствами ЭМ волны и материальной частицы - функции и переменной
Вот никогда не понимал этого утверждения.Но любые глобалы это "страшное зло"
Yii::app()->configure($config);Соединение с базой - из той же серии. Одиножды определил - везде пользуешься
Вот никогда не понимал этого утверждения.
Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий.
Вот зачем такое в PHP - я тоже никак не пойму.А больше всего не понимаю - это когда городят фабрику инстансов для автоматической генерации интефейсов по управлению коллекциями управляющих структур, наследующих инъекцию зависимостей и инкапсулирующих управление инициализациями. И все это - только ради того, чтобы не писать табуированное слово global.
Извините, но в этом месте ржал в голосСтатические переменные - как константы, но которые можно менять.
А почему нет? Константы также используются, как и статические переменные - только их невозможно поменять. Если привести к описанной выше аналогиее - кол-во необходимого сырья для продукта и будет константа.Извините, но в этом месте ржал в голос
Константы используются так же, как и статические переменные - их значение берут и используют в коде, но только присваивания константам, в отличие от статических переменных, значение которых можно переопределить, нет, потому что константы невозможно поменять, а так то же самое, только константы, а не статические переменные.А почему нет? Константы также используются, как и статические переменные - только их невозможно поменять
Можно проще.все эти $instance::getInstance()->makeSureWeGotRightInstance()->instanceOf(dependencyHandler)->willWeEverGetOurInstance->never() - этот все тот же global $instance, только вид сбоку. Плюс килобайт 500 кода, без которого вся эта колбаса работать не будет.
классический пример, который объясняет смысл статических переменныхА чего не так-то? Статические переменные - как константы, но которые можно менять. Если провести аналогию с заводом
class Animal
{
private static $population = 0;
public function __construct(.....) {
...........
self::$population++;
}
public function __destruct() {
self::$population--;
}
}
не ходи по городу голый и не используй глобальные переменные, и не тупи!
Да не надо человека плохому учить, к чёрту комплексы. Можешь ходить по городу голым, но глобальные переменные не используй.
Глобальные переменные могут быть изменены или unset в любой месте, а твои методы должны быть максимально автономны. Ты можешь напрямую передавать эти переменные как параметр в функцию.
В общем-то норма морали, плохой тон и все такое, насколько я понимаю.>Окей, почему global лучше не использовать?
Считай это нормой морали.
Нельзя ходить голым по городу и использовать global.
Ты говоришь таким тоном, как будто в этой теме говорится иначе.А я как-то давно пришел сюда с вопросом про global и мне ответили что никакого глобал - только передача переменных через аргументы, только хардкор.
Собственно эти пункты можно свести к одному - зависимости. И фактически ты повторил то же, что он привёл в моей цитате, но при этом VVWind видит лишь моральные проблемыС глобальными переменными только две проблемы:
1. изменения имеют непредсказуемые последствия.
2. связанность кода