/
Программирование
/
Курс PHP
/

Выражения в определениях

PHP: Выражения в определениях

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

Например, вот такая запись работает:

<?php

$yuansCount = 50 * 1.25 * 6.91;
print_r($yuansCount); // => 431.875

PHP легко вычислит это выражение. Но человеку читать такой код уже не так удобно. Сразу возникают вопросы:

  • Что означает 1.25?
  • Что означает 6.91?
  • Где заканчивается один шаг вычисления и начинается следующий?

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

Переменные помогают разбивать сложные вычисления на понятные части и сохранять промежуточные результаты.

Конвертация валют через промежуточную валюту

Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро -> доллары -> юани. Так часто работают банки при оплате покупок за рубежом.

Шаг 1. Евро -> Доллары

Допустим, курс: 1 евро = 1.25 доллара. Хотим перевести 50 евро:

<?php

$dollarsPerEuro = 1.25;
$dollarsCount = 50 * $dollarsPerEuro;
print_r($dollarsCount); // => 62.5

В этой строке 50 * $dollarsPerEuro является выражением, а $dollarsCount представляет собой переменную, в которую записывается результат. PHP сначала вычисляет выражение, а уже потом сохраняет результат в переменную.

Интерпретатору все равно, как записано выражение:

$dollarsCount = 62.5;

или

$dollarsCount = 50 * $dollarsPerEuro;

Результат будет один и тот же. Но для человека второй вариант полезнее: по имени $dollarsCount сразу видно, что на этом шаге мы получили сумму в долларах.

Шаг 2. Доллары -> Юани

Теперь переведем 50 евро в юани, используя доллар как промежуточную валюту. Допустим, курсы валют: 1 доллар = 6.91 юаней, 1 евро = 1.25 долларов.

<?php

$dollarsPerEuro = 1.25;
$yuansPerDollar = 6.91;

$dollarsCount = 50 * $dollarsPerEuro;
$yuansCount = $dollarsCount * $yuansPerDollar;

print_r($yuansCount);

Этот код длиннее, чем одна строка 50 * 1.25 * 6.91, но читать его проще:

  • видно, что 1.25 это курс евро к доллару
  • видно, что 6.91 это курс доллара к юаню
  • видно, что $dollarsCount является промежуточным результатом

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

Что нужно запомнить

  • Если выражение получается слишком длинным, его лучше разбить на несколько шагов.
  • Переменные помогают сохранять промежуточные результаты и делают вычисления понятнее.
  • Когда переменная используется в выражении, PHP подставляет ее значение и продолжает вычисление.

Задание

Напишите программу, которая берёт исходное количество евро из переменной $eurosCount, переводит евро в доллары и выводит значение на экран. Затем программа полученное значение переводит в юани и выводит результат на новой строчке.

Пример вывода для 100 евро:

125
863.75

Считаем, что:

  • 1 евро = 1.25 долларов
  • 1 доллар = 6.91 юаней

Полезное

  • Для перевода строчки можно использовать \n между выводом долларов и юаней.

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

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются