Переменные

Начнем с повторения

Одна из вещей, которые делают программы — это работа с числами. Если ты читал предыдущий урок, то наверняка запомнил команду echo, которая печатает текст и числа. И наверняка ты помнишь, что в PHP есть операторы +, -, *, / (который ты не перепутаешь с обратным слешем «\»), % (который обозначает деление с остатком), а дробные числа пишутся через точку.

Переменные

Когда выполняется код, нам надо где-то хранить промежуточные результаты и другие данные. Для этого в программировании используются переменные. Переменная — это такая штука, в которую можно сохранить какое-то число или строку. У каждой переменной есть имя, и она обозначается конструкцией вроде $daysPassed (в начале всегда ставится знак доллара). Название (daysPassed — «прошлоДней») придумывает программист (это ты). Чтобы сохранить значение в переменной, используется оператор =:

$daysPassed = 7;

Надеюсь, ты еще помнишь, что после каждой инструкции ставится точка с запятой?

Эта команда создает переменную $daysPassed и кладет в нее число 7. Теперь ты можешь, например, вывести это значение с помощью echo:

echo $daysPassed; → напечатает 7

Переменную можно вставить внутрь строки (если она в двойных кавычках, а не в одинарных), чтобы вывести поясняющий текст:

echo "Прошло дней: $daysPassed"; → выведет Прошло дней: 7

Также, в переменной можно сохранить (присвоить переменной значение, говорят программисты) строку $name = "Ivan"; или результат вычисления какого-то выражения: $balance = 1000 + 1000;.

Не знаешь английский и не можешь придумать имя переменной? Воспользуйся сервисом Яндекс.словари или Google translate, только не пиши по-русски, над тобой же смеяться будут.

Имена переменных могут состоять из латинских букв a-z, A-Z, цифр 0-9 и знака подчеркивания _. Хоть знак подчеркивания и разрешено использовать в имени, это не рекомендуется. Имена принято начинать с маленькой буквы, а если оно состоит из нескольких слов, то эти слова, кроме первого, начинаются с большой буквы (это называется camelCase):

Имена переменных

Важно! Регистр букв в имени переменной (большая или маленькая) имеет значение! $a и $A — это 2 разных переменных (причем вторая еще и названа плохо, имя должно начинаться с маленькой буквы).

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

Задачка

W2. Допиши программу, переводящую доллары в рубли, чтобы она работала правильно. Заготовку можешь взять по ссылке http://ideone.com/CsCOBV или http://paste2.org/pE927NmC

Задачка на перевод рублей в доллары Создание переменных

Переменные и операции с ними

Переменные можно использовать в выражениях и складывать, умножать, делить, и т.д. Для того, чтобы увеличить значение в переменной на 5, можно написать $a = $a + 5; (мы прибавляем 5 к тому, что ранее хранилось в переменной и сохраняем результат в нее же), но для таких целей есть более короткая форма записи: $a += 5;. Чтобы увеличить переменную на 1, можно писать еще короче: $a++; — делает то же самое, что и $a += 1;.

Операторы и сокращенная форма записи

Хитрости и уточнения

Эта информация только для тех, кто хочет знать больше необходимого минимума и изучать ее необязательно (хотя и полезно для расширения кругозора).

Интересно, что в PHP почти все операторы, даже такие, как = возвращают какое-то значение, потому их можно использовать в выражениях (хотя это запутывает код и делает его нечитаемым, так что злоупотреблять не стоит). Например, = возвращает присвоенное значение и его потому можно использовать так:

$a = ($b = ($c = 1));

или, если убрать скобки, $a = $b = $c = 1;

Сначала выполнится действие $c = 1, которое присвоит $c значение 1 и вернет это значение. Возвращенное значение присвоится $b, а затем и $a. Таким образом, во всех 3 переменных окажется единица.

Операторы +=, -= и подобные возвращают увеличенное/уменьшенное значение. А вот с оператором ++ ситуация сложнее. Его можно записать перед переменной ++$i (префиксная форма) и после $i++ (постфиксная форма). В первом случае сначала увеличивается переменная, и возвращается увеличенное значение, а во втором — переменная тоже увеличивается, но возвращается исходное значение, которое было в ней до инкремента.

Кстати, слово инкремент обозначает увеличение на 1, а декремент - уменьшение.

Функции

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

ФункцияОписаниеМануал
sqrt($x) Считает квадратный корень из числа $x sqrt
abs($x) Возвращает модуль числа (т.е. абсолютное значение без знака, abs(-5) => 5) abs
mt_rand($a, $b) Возвращает случайное целое число от $a до $b mt_rand
max($a, $b, $c, $d) Возвращает наибольшее из нескольких чисел max
min($a, $b) Возвращает наименьшее из нескольких чисел min
pow($x, $y) Возводит $x в степень $y pow
pi() Возвращает число Пи (3.1415 и так далее) pi
floor($x) Округляет число вниз (в сторону -∞), например, floor(3.8) => 3 floor
ceil($x) Округляет число в большую сторону (в сторону +∞), например, ceil(3.1) => 4 ceil
round($x) Округляет число по математическим правилам (к ближайшему целому) round
round($x, $n) Округляет число по математическим правилам (к ближайшему целому) до $n знаков после запятой, например, round(3.1415, 2) => 3.14 round
sin($x) Считает синус от $x (где $x задается в радианах, а не в градусах). Еще есть cos($x), tan($x), asin($x), но нам они не понадобятся, не бойся. sin

Обрати внимание, что функция не меняет значение указанных в скобках переменных, а возвращает новое значение. Его надо сохранить в какую-нибудь переменную, например, так:

<?php
error_reporting(-1);

$a = 25;
$b = sqrt($a);
echo "Если взять корень из $a, получится $b";

Вывод значения переменной

Узнать, что хранится в переменной, можно, написав команду var_dump($x); или echo $x;. Переменные также можно подставлять в строку (если она в двойных кавычках), чтобы вывести какой-то поясняющий текст:

Вывод значения переменной

Задание

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

W3. Напиши программу, которая имитирует бросок кубика (генерирует случайное число от 1 до 6) и выводит его.

Подсказка: чтобы получить случайное число, есть функция mt_rand().

Код, заключенный в /* ... */ — это комментарий, интерпретатор его проигнорирует, но в нем ты можешь оставить коллегам-программистам какое-то полезное сообщение. Специальная последовательность символов \n (работает только в строке с двойными кавычками) называется перевод строки и делает перенос текста на новую строку, без нее все бы писалось в одну длинную-длинную строчку.

Задача на переменные

Типы значений

У значений, которые, например, хранятся в переменной, есть свой тип, например, число или строка. Разница между ними в том, что, например, числа складываются и вычитаются, а строки — нет. Узнать тип значения в переменной можно, сделав var_dump($x) — она выведет и тип, и значение переменной. Всего в PHP 8 типов данных, вот они:

Сделал задание? Молодец, переходи к следующему уроку.

-----

Куда вводить код? Что надо скачать? Читай первый урок.

Есть вопросы? Задай гуглу или автору.

Нравится урок? Лайкай, репости, приглашай друзей, пости котов и Канако, шли добра, решай задачи, помогай новичкам! Кнопок для лайка нет, кто хочет зарепостить, всегда может сделать это ручками.

Как связаться с автором? Я хочу переодеть его в платье школьницы и жениться на нем. Ящик codedokode (кот) gmail.com ждет ваших писем. А вконтактик и фейсбучек ждут ваших лайков. Но ответ на банальные вопросы лучше искать в Гугле или на stackoverflow.

Я решил задачку!!! Молодец, делай следующий урок

Ideone не работает!11 Ну так открой Гугл и найди сайты вроде https://repl.it/languages/php , http://phptester.net/ , http://sandbox.onlinephpfunctions.com/ , http://codepad.org/ или http://www.runphponline.com/ . Не ленись.

Почему так много рекламы? Всю рекламу на сайте ставит юкоз (бесплатный хостинг же), а не я.

На сайте установлена система Google Analytics (и еще несколько аналогичных систем от юкоза). Данные о твоем IP-адресе, посещаемых страницах, времени посещения отправляются в Google Corporation, США. Хочу знать, кто и зачем сюда заходит. Поверь, другие сайты делают точно так же. Все сайты пишут логи.