Сравнение абстрактного класса и интерфейса в PHP. В чем разница между абстрактным классом и интерфейсом в PHP? Это один из самых распространненых вопросов на собеседованиях.

В этом уроке вы узнаете некоторые важные различия между абстрактным классом и интерфейсом.

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

В PHP позднее статическое связывание используется для ссылки на вызываемый класс в контексте статического наследования.

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

PHP изначально не задумывался как объектно-ориентированный язык программирования, но с годами был усовершенствован внедрением классов, пространств имен, интерфейсов, трейтов, абстрактных классов и других улучшений, которые помогают разработчикам писать на нем код с соблюдением принципов SOLID.

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

Что такое "ошибка ERR_TOO_MANY_REDIRECTS"

Ошибка ERR_TOO_MANY_REDIRECTS ("Циклическое перенаправление на странице") или "redirect loop" ("цикл перенаправлений", "петля перенаправлений") возникает в случае, когда сервер поочередно перенаправляет клиента на разные адреса, последний из которых делает перенаправление на первый адрес, таким образом создавая бесконечный цикл перенаправлений. Чаще всего цикл не содержит большое количество адресов - обычно это 2 адреса которые перенаправляют клиента друг на друга, например https://www.example.com -> редирект -> https://example.com -> редирект -> https://www.example.com и так до бесконечности.

То, как браузеры планируют выполнение и затем выполняют скрипты, может влиять на производительность веб-страниц. Хотя такие техники, как <script defer> , <link rel = preload> (и подобные) влияют на загрузку скрипта, также полезным будет знание о том, как именно браузеры их интерпретируют. Благодаря Kouhei Ueno (разработчик в Google - прим. перев.) теперь у нас есть обновленная сводная таблица о планировании работы скриптов в Chrome.

В Debian 9 установлены сразу 2 версии Python (из разных веток).

На момент написания заметки они были представлены пакетами python, который соответствует версии 2.7.13 из ветки 2.*; и python3 — версия 3.5.3 из ветки 3.*.

Само собой, по умолчанию используется только какая-то одна из версий, и для Debian это более старая версия 2.7.

В новой версии Chrome автоматически активируется новая версия интерфейса со скруглёнными углами элементов (вкладок, кнопок, полей ввода и прочих). Для тех, кому подобное нововведение не понравилось, есть достаточно простой способ вернуть старую версию интерфейса.

1914-1918

Подвесное препятствие

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

Источник фото: Henry Guttmann/Getty Images

Воздушные шары и дирижабли впервые были использованы для военной разведки во время Французских революционных войн, а также применялись в многочисленных конфликтах 19-го века.

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

Как правило, наблюдательный шар пролетал на большой высоте за линией фронта, где наблюдатель мог находить отдаленные вражеские цели и передавать их позиции наземной артиллерии.