Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Подробнее о PHP PHP: Настройка окружения

Что вообще такое язык программирования? За этим понятием скрываются две связанных, но независимых темы.

Язык программирования

С одной стороны, языком программирования называют правила (синтаксические и семантические), по которым записывается и работает исходный код. В отличие от естественных языков, эти правила достаточно строги. Любая мельчайшая ошибка и код либо не запустится, либо запустится, но не заработает, как ожидается. Например, в PHP нельзя написать $name = 5 (без ; в конце). Эти правила существуют не только в книгах, но и в головах конкретных программистов и разработчиков языка. Они очень чётко описаны в спецификации, документе, который является эталоном и истиной в последней инстанции. Спецификация у языка, как правило, одна.

С другой стороны, языком программирования называют программу, которая непосредственно запускает (или компилирует) наш код. В предыдущем уроке мы как раз установили такую. Обычно её называют средой выполнения, иногда "рантаймом", если речь идёт про интерпретацию. Среда выполнения — конкретное воплощение спецификации. Интерпретаторов может быть сколько угодно, и делать их может кто угодно. Например, peachpie - он позволяет запускать PHP программы на платформе .NET.

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

PHP

PHP — динамический, слабо типизированный, интерпретируемый язык программирования. Разберём эти слова по отдельности.

Интерпретируемый

У PHP отсутствует стадия компиляции, как у языков, подобных Java или C. Код непосредственно передаётся в интерпретатор, который его выполняет по мере чтения. Поэтому любая программа на PHP состоит из текстовых файлов.

php -a
Interactive shell

php> echo 10 * 3 + sqrt(4);
32

Откровенно говоря, это не совсем так. У PHP всё же есть стадия компиляции, но она скрыта от глаз пользователя, и внешне PHP ведёт себя именно как интерпретируемый язык программирования.

Динамический

В отличие от статических языков, проверка типов в PHP происходит в момент выполнения кода. Поэтому если, мы случайно ошиблись и, например, вызываем несуществующую функцию, то ошибка всплывёт только во время вызова этой функции. В статических языках подобные ошибки отслеживаются на этапе анализа исходного текста без запуска кода на выполнение. Такие инструменты называются статические анализаторы кода (слово статический как раз означает, что программа не выполняется). Для динамических языков они тоже существуют, но отслеживают значительно меньшее число ошибок. Об одном таком инструменте мы поговорим в соответствующем уроке.

Слабо типизированный

Слабая типизация означает то, что PHP автоматически приводит типы там, где считает нужным (описано в спецификации). С одной стороны, слабая типизация позволяет писать более короткий код, но с другой, количество ошибок резко возрастает, так как вместо падения, код продолжает работать там, где он не должен работать. Например, мы можем сложить число со строкой по ошибке, и PHP молча выполнит эту операцию. В языках типа Ruby или Python подобное невозможно. Выполнение кода прекратится с сообщением о невозможности выполнить операцию для этих типов. Нужно стараться никогда не полагаться на эту особенность языка во избежание проблем.

php -a
Interactive shell

php > echo '234' + 4;
238

Дополнительные материалы

  1. Что такое компиляция
  2. Что такое интерпретация

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы PHP-разработчик
Профессия
с нуля
Разработка веб-приложений на Laravel
1 декабря 10 месяцев

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»