PHP: Именование переменных
$greeting служит примером простого и понятного имени переменной. Но часто имен вроде $name, $email или $price оказывается недостаточно. Например, нужно описать имя пользователя, общее количество заказов, максимальную длину сообщения. Такие имена уже состоят из нескольких слов. Как в таком случае будет выглядеть имя переменной?
В разных языках программирования используются разные стили именования. От этого зависит, как будет выглядеть имя переменной из нескольких слов. Например, вот как можно записать переменную, которая хранит максимальную длину сообщения:
$maxmessagelength$maxMessageLength$max-message-length$max_message_length
Основные стили
Вот три популярных подхода к написанию составных имен:
-
kebab-case: слова разделяются дефисом:
max-message-length.В PHP не работает, так как дефис (-) воспринимается как оператор вычитания.
-
snake_case: слова разделяются подчеркиванием:
$max_message_length.Это стандарт, например, для Python. В PHP так именуются многие встроенные функции, но для переменных этот стиль не используется.
-
CamelCase: каждое слово с заглавной буквы, без разделителей:
MaxMessageLength. У него есть вариация lowerCamelCase, при которой первое слово пишется со строчной буквы:$maxMessageLength.Именно lowerCamelCase является стандартом для переменных в PHP.
Как правильно в PHP
<?php
$userName = "Daenerys";
$maxLength = 280;
$totalOrdersCount = 17;- Первое слово пишется со строчной буквы
- Каждое следующее слово начинается с заглавной
- Разделители между словами не используются
В каждом языке свои правила. В PHP есть общепринятый стандарт кодирования, который описывает множество подобных аспектов. Не обязательно помнить все его правила: код автоматически проверяют линтеры, с которыми мы уже познакомились ранее.
Как не надо
Не стоит включать тип данных в имя переменной. Такие имена хуже читаются и быстро устаревают. Например, $userNameString или $messagesNumber описывают не смысл переменной, а ее техническую реализацию.
Имя должно отвечать на вопрос "что хранится?", а не "какого это типа?". Поэтому лучше писать $userName вместо $userNameString и $messagesCount вместо $messagesNumber.
Задание
- Создайте две переменные: количество товаров в заказе и цена одного товара. Используйте lowerCamelCase. Как вы назовете переменные — на ваше усмотрение, тесты это не проверяют.
- Запишите в первую переменную число
20, во вторую —100. - Вычислите итоговую стоимость заказа.
- Выведите результат на экран.
Полезное
PHP: Именование переменных
$greeting служит примером простого и понятного имени переменной. Но часто имен вроде $name, $email или $price оказывается недостаточно. Например, нужно описать имя пользователя, общее количество заказов, максимальную длину сообщения. Такие имена уже состоят из нескольких слов. Как в таком случае будет выглядеть имя переменной?
В разных языках программирования используются разные стили именования. От этого зависит, как будет выглядеть имя переменной из нескольких слов. Например, вот как можно записать переменную, которая хранит максимальную длину сообщения:
$maxmessagelength$maxMessageLength$max-message-length$max_message_length
Основные стили
Вот три популярных подхода к написанию составных имен:
-
kebab-case: слова разделяются дефисом:
max-message-length.В PHP не работает, так как дефис (-) воспринимается как оператор вычитания.
-
snake_case: слова разделяются подчеркиванием:
$max_message_length.Это стандарт, например, для Python. В PHP так именуются многие встроенные функции, но для переменных этот стиль не используется.
-
CamelCase: каждое слово с заглавной буквы, без разделителей:
MaxMessageLength. У него есть вариация lowerCamelCase, при которой первое слово пишется со строчной буквы:$maxMessageLength.Именно lowerCamelCase является стандартом для переменных в PHP.
Как правильно в PHP
<?php
$userName = "Daenerys";
$maxLength = 280;
$totalOrdersCount = 17;- Первое слово пишется со строчной буквы
- Каждое следующее слово начинается с заглавной
- Разделители между словами не используются
В каждом языке свои правила. В PHP есть общепринятый стандарт кодирования, который описывает множество подобных аспектов. Не обязательно помнить все его правила: код автоматически проверяют линтеры, с которыми мы уже познакомились ранее.
Как не надо
Не стоит включать тип данных в имя переменной. Такие имена хуже читаются и быстро устаревают. Например, $userNameString или $messagesNumber описывают не смысл переменной, а ее техническую реализацию.
Имя должно отвечать на вопрос "что хранится?", а не "какого это типа?". Поэтому лучше писать $userName вместо $userNameString и $messagesCount вместо $messagesNumber.
Задание
- Создайте две переменные: количество товаров в заказе и цена одного товара. Используйте lowerCamelCase. Как вы назовете переменные — на ваше усмотрение, тесты это не проверяют.
- Запишите в первую переменную число
20, во вторую —100. - Вычислите итоговую стоимость заказа.
- Выведите результат на экран.
Полезное
Ваше упражнение проверяется по этим тестам
<?php
namespace HexletBasics\Variables\Naming;
use HexletBasics\Exercise\TestCase;
class SolutionTest extends TestCase
{
public function test()
{
$expected = "2000";
$this->assertOutput($expected);
}
}Решение учителя откроется через:
20:00
