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

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

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

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

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

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

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

PHP

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

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

В отличие от Java или C, у PHP отсутствует стадия компиляции. Код непосредственно передается в интерпретатор, который выполняет его по мере чтения. Поэтому любая программа на 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
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 25 апреля

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

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

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

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