Зарегистрируйтесь для доступа к 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. Что такое интерпретация

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

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

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

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Для полного доступа к курсу нужна профессиональная подписка

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

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

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

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

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

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

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

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

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

Есть вопрос или хотите участвовать в обсуждении?

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

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»