Задать вопрос
  • Почему на сайте не получается выделить текст мышкой?

    ali_aliev
    @ali_aliev
    Разработчик на Django/Python, JavaScript
    Можно, отключите все скрипты на сайте и будет вам счастье. Открываем инструменты разработчика в хроме (можно и правой кнопкой нажать по любому элементу на сайте и выбрать пункт меню "проверить элемент", естественно предварительно зайдя на сайт), жмем кнопку настроек (шестеренка справа) ищем галочку Disable JavaScript, и включаем ее. Обновляем страницу.
    Ответ написан
    Комментировать
  • Почему Serialize собирает не все поля?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Serialize пропустит все поля у которых:
    - нет атрибута name
    - пустой value
    - есть атрибут disabled
    Ответ написан
    3 комментария
  • Где искать переменные?

    @amfetamine
    для шаблона review_form.tpl стандартный контроллер - это admin/controller/product/review.php
    Ответ написан
    4 комментария
  • Как открыть файл на gitHub?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Ответ написан
    Комментировать
  • Что такое static в ООП php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для этого вам надо понимать в чем разница между классами и объектами. Вот есть методы и свойства объектов а есть методы и свойства классов. Последние как раз статические свойства и методы. Отсюда и все особенности их работы и возможные варианты использования. Класс у нас в системе может быть только один, а экземпляров этого класса (объектов) много.

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

    $foo = Singleton::instance();
    $bar = AbstractFactory::create('bar');
    $buz = Buz::fromArray([
        'many' => 'arguments', 'Buz' => 'has', 'private' => 'constructor'
    ]);


    В PHP статику еще любят применять как замену обычным функциям в силу того, что для классов автозагрузка у нас есть, а для функций нету. Не сказать что это сильно хорошо, я бы даже сказал что это плохо. Учитывая что сейчас есть composer а благодаря opcache оверхэда от подключения для каждого запроса файла особо и нет. В целом лучше стараться избегать использования статики или во всяком случае делать в статических методах хоть сколько нибудь сложные вещи. И лучше всегда ограничиваться только случаями для порождения объектов, тут статика выглядит логично.

    Если рассматривать с точки зрения пораждающиз статических методов, нам так же надо знать кого создавать. И тут появляются два ключевых слова - self и static. Причем self равносильно написанию имени класса в котором наш статический метод находится и просто позволяет уменьшить дублирование. static же намного интереснее, так как оно указывает непосдерственно на тот класс, из под которого был совершен вызов. Скажем если у вас есть наследование вы можете запихнуть порождающий метод в базовый класс, и тогда узнать кого создавать в принципе не проблема.

    class Foo {
        public static function createWithSelf() {
             // равносильно new Foo();
             return new self();
        }
        public static function createWithStatic() {
             // а тут мы пока не знаем кто такой этот static
             $foo = new static();
        }
    }
    
    class Bar extends Foo {}
    
    $foo = Bar::createWithSelf(); // тут будет экземпляр Foo
    $bar = Bar::createWithStatic(); // тут будет экземпляр Bar
    Ответ написан
    1 комментарий
  • Что почитать про алгоритмы?

    ptitca_zu
    @ptitca_zu
    Programmer. Reader. Introvert
    А какие конкретно вопросы завалили?

    Просто я тоже только что с собеседования, на алгоритмические вопросы более или менее нормально ответил, опираясь на эту книгу.

    Книга, про которую Вы говорите, по-моему, вообще не об этом. Не стесняйтесь спрашивать, что почитать у тех, кто проводит собеседование, кстати.
    Ответ написан
    Комментировать