Урок 5. PHP — Операторы
Во всех языках программирования, операторы используются для манипулирования или выполнения операций над переменными и их значениями. Вы уже видели оператор конкатенации «.» В уроке Echo и оператор присваивания «=» в тех же начальных уроках. Теперь поговорим о других операторах.
Есть много операторов, используемых в PHP, поэтому мы разделили их на категории для простоты изучения.
- Операторы присваивания.
- Арифметические операторы.
- Операторы сравнения. Строковые операторы.
- Арифметические операторы совместно с операторами присваивания.
Операторы присваивания
Операторы присваивания используются для задания конкретного значения переменной или присвоения переменной значения другой переменной. Присвоение осуществляется с помощью символа «=». Пример:
- $my_var = 4;
- $another_var = $my_var;
Теперь и $my_var и $another_var содержат значение 4.
Присваивание может быть использовано в сочетании с арифметическими операторами.
Арифметические операторы
Код для примера:
$addition = 2 + 4; $subtraction = 6 - 2; $multiplication = 5 * 3; $division = 15 / 3; $modulus = 5 % 2; echo "Пример сложения: 2 + 4 = ".$addition."<br />"; echo "Пример вычитания: 6 - 2 = ".$subtraction."<br />"; echo "Пример умножения: 5 * 3 = ".$multiplication."<br />"; echo "Пример деления нацело: 15 / 3 = ".$division."<br />"; echo "Пример остатка от деления: 5 % 2 = " . $modulus;
Результат кода:
Пример сложения: 2 + 4 = 6 Пример вычитания: 6 - 2 = 4 Пример умножения: 5 * 3 = 15 Пример деления нацело: 15 / 3 = 5 Пример остатка от деления: 5 % 2 = 1
На самом деле все просто, не так ли? :)
Операторы сравнения
Сравнения используются, чтобы проверить связь между переменными или их значениями. Простой пример использования операторов сравнения будет представлен в уроке 9. Операторы сравнения используются внутри условных операторов и могут принимать значения истина или лож. Вот наиболее важные из операторов сравнения PHP.
Строковые операторы
Как мы уже видели в уроке про Echo, оператор «.» используется, чтобы соединить две строки (или более) вместе.
Конечно же пример:
$a_string = "Hello"; $another_string = " Billy"; $new_string = $a_string . $another_string; echo $new_string . "!";
Результат:
Hello Billy!
Арифметические операторы совместно с операторами присваивания
В программировании это очень часто возникает задача, которая требует увеличения переменной на некоторую фиксированную величину. Наиболее распространенным примером является счетчик. Скажем, вы хотите увеличить счетчик на 3:
- $counter = $counter + 3;
Однако, можно сократить запись.
- $counter += 3;
Эта комбинация операторов будет выполнять ту же задачу. Недостатком такой конструкции является то, что она снижает читаемость кода для тех программистов, которые не привыкли к такому оператору. В общем, «+=» и «-=» являются наиболее широко используемыми операторами. Вот несколько похожих примеров из других областей.
Пред, Пост — инкремент и Пред, Пост — декремент
Это может показаться немного абсурдным, но есть даже короткая запись для общей задачи добавления единицы и вычитания единицы из переменной. Чтобы добавить 1 к переменной, можно использовать оператор «++» (инкремент):
- $x++; что эквивалентно $x += 1; или $x = $x + 1;
Чтобы вычесть 1 из переменной, можно использовать оператор «—» (декремент):
- $x—; что эквивалентно $x -= 1; или $x = $x — 1;
В дополнение к этому сокращению вы можете указать, хотите ли вы увеличить переменную до вывода или после. Вот пример того, о чем я говорю:
$x = 4; echo "Значение переменной с пост-инкрементом = " . $x++; echo "<br /> Значение переменной после выполнения пост-инкремента = " . $x; $x = 4; echo "<br />Значение переменной с пред-инкрементом = " . ++$x; echo "<br /> Значение переменной после пред-инкремента = " . $x;
Посмотрите на результат:
Значение переменной с пост-инкрементом = 4 Значение переменной после выполнения пост-инкремента = 5 Значение переменной с пред-инкрементом = 5 Значение переменной после пред-инкремента = 5
Как вы можете видеть, значение переменной $х++ не отражается эхом в тексте, потому что переменная не увеличивается до окончания выполнения кода. Однако, с пред-инкрементом ++$х, переменная будет отражать результат сразу.
Практикуйтесь и переходите к следующим урокам! :)
← Строки | Содержание | Комментарии →
Комментарии:
Начало урока — нет, я не видел операции конкатенации в уроке про «echo». Так что добавьте его, или уберите отсюда утверждение что он там есть )
Александр, действительно, спасибо большое, исправлю завтра :)
UPD: все исправлено 25.01.13
Вот тут норм всё изложено, только «вы хотите увеличить счетчик на 1:
$counter = $counter + 3;», хотим на 1, а увеличиваем почему на 3! После c#, php как детский рассказ, после войны и мира :D
Миша, 1 исправил на 3, спасибо :)
Насчет C# тут не знаю, смотря с какой стороны посмотреть. На оффлайн работе я программирую на шарпе, а дома иногда забавляюсь с пхп, и так и тут своя специфика и тонкости. Как говорится, кто на что учился ))
я вообще не могу понять а для чего вы добавляете дочку перед переменными?
Султан, какую дочку? А точка является конкатенатором — сцепляет строки. В уроке про echo есть в конце зачем это нужно.
Если возмём две строковых переменных типа:
$a = «SUPER»;
$b = «MAN»;
// то при вызове следующей конструкции:
$c = $a.$b;
// В переменную $c запишется «SUPERMAN»:
print $c;
Скопируйте весь этот блок и вставьте в редактор, запустите скрипт и увидите что получится.
Александр все верно говорит :)
Спасибо большое за ваши уроки. Сейчас как-бы только верстаю, но сам понимаю, что без сего PHP «не туда и не сюда». Надеюсь все выйдет)
AlexxKur, не за что. Обязательно все получится)
Ребят учите C++, ПХП копия(почти) этого языка(я прочитал с 1-го урока и до этого и ничего нового :()
Aдмин! У тя столько ошибок что застрелится можно! Как понять:
Инкремент ++ увеличивает на 1
$ x = 4 ; e c h o » З н а ч е н и е п е р е м е н н о й с п о с т — и н к р е м е н т о м = » . $ x+ +
как понять что З н а ч е н и е п е р е м е н н о й с п о с т — и н к р е м е н т о м = 4 А БЛЯТЬ!? Поясни!
Не извени канешно за мат! Но я не магу!
Stas,
Что «немогу»? Не можешь вести общение без мата? И поясни, что тебе «непонятна»?
Инкрименты/жекрименты я часто юзаю в циклах (даже не часто, а всегда).
$x = 5;
echo $x++; // выведет результат выражения 5+1, ибо «++» = «+1».
Александр,
Почти согласен. Но уча эти два языка одновременно, в итоге не выучите ничего. А вот учить PHP после «Си» — легко. А главное : легко будет не освоение похожего в некоторых местах синтаксиса, а понимания алгоритма и «как это работает» .
AlexxKur, но у тебя написано:
$x=4;
echo «Значение переменной с пост — инкрементом=» . $x++;
Зачем вообще добавлять ++ если результат тот же что $х=4 что и $х++ какая разница обьясни пожалуйста что значит ++? Ты же говорил что увеличивает на 1.
Stas,
Все правильно. ++ увеличивае значение переменной на 1.
Приведу пример в цикле FOR:
for($i==1; $i<10; $i++) {
echo $i."»;
}
Выведет:
1
2
3
…
9
.
Обьясняю:
Выполняем цикл, где стартовое значение переменной i будет равно еденице, и пока значение i будет меньше 10. При всем этом каждый цикл будет переходить на $i++ (каждый раз на еденицу).
Т.Е 1 круг цикла — I=1
2. круг — I=I++ (новое значение будет равно предыдущиму).
Вообщем почитайте раздел «циклы».
Удачи!)
Ну а если, просто как у тебя в етом примере:
$x=4;
echo «Значение переменной с пост-инкрементом =» $x++
Ничего же не меняется! Ето все равно что вместо $x++ ты поставил просто $x!! Я о том что оператор ++ ничего не дает в данном случае. И результат виден при выполнении цикла и все! Ты есть Вконтакте?
Stas механизм добавления еденицы x++ и ++x немного разный, хотя приводит к одному и тому же действию. К примеру. операция «;» ставится не спроста после каждого выражения. это конец команды, обрабатывающейся интерпретатором. вся программа фактически и состоит из набора такого рода команд и когда ты пишешь, x++ это означает что значение переменной $x будет увеличено только после завершения данной команды, пример echo $x++; здесь ты говоришь компу я хочу что бы значение в ячейке по адресу $x увеличилось на 1 только после завершения данной команды. То ессть толкьо после того как будет выведено $x после ; $x будет увеличена на 1. И в то же время если написать ++$x, то это означает немедленно увеличение значения на 1, не дожидаясь завершения данной команды.как то так…
kostya,
Спасибо за объяснение.
всегда рад помочь)
Читая комментарии, возникает вопрос: а в чём разница между «print» и «echo»?
Спасибо Вам большое. Отличные уроки одни из лучших на просторах интернета. Теперь изучать php стало намного интереснее и легче!
Благодарю, за ваш сайт!
Очень нужная информация, как раз изучаю PHP, и у вас все понятным языком написано. Успехов вам!
Да, автору респект. Это очень неплохая методика.