Урок 5. PHP — Операторы

Во всех языках программирования, операторы используются для манипулирования или выполнения операций над переменными и их значениями. Вы уже видели оператор конкатенации «.» В уроке Echo и оператор присваивания «=» в тех же начальных уроках. Теперь поговорим о других операторах.

Есть много операторов, используемых в PHP, поэтому мы разделили их на категории для простоты изучения.

  • Операторы присваивания.
  • Арифметические операторы.
  • Операторы сравнения.
  • Строковые операторы.
  • Арифметические операторы совместно с операторами присваивания.

Операторы присваивания

Операторы присваивания используются для задания конкретного значения переменной или присвоения переменной значения другой переменной. Присвоение осуществляется с помощью символа «=». Пример:

  • $my_var = 4;
  • $another_var = $my_var;

Теперь и $my_var и $another_var содержат значение 4.
Присваивание может быть использовано в сочетании с арифметическими операторами.

Арифметические операторы

операторы php

Код для примера:

$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.

операторы 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;

Эта комбинация операторов будет выполнять ту же задачу. Недостатком такой конструкции является то, что она снижает читаемость кода для тех программистов, которые не привыкли к такому оператору. В общем, «+=» и «-=» являются наиболее широко используемыми операторами. Вот несколько похожих примеров из других областей.

php операторы

Пред, Пост — инкремент и Пред, Пост — декремент

Это может показаться немного абсурдным, но есть даже короткая запись для общей задачи добавления единицы и вычитания единицы из переменной. Чтобы добавить 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

Как вы можете видеть, значение переменной $х++ не отражается эхом в тексте, потому что переменная не увеличивается до окончания выполнения кода. Однако, с пред-инкрементом ++$х, переменная будет отражать результат сразу.

Практикуйтесь и переходите к следующим урокам! :)

Строки | Содержание | Комментарии

Комментарии:

  1. Александр — 24.01.2013 21:31

    Начало урока — нет, я не видел операции конкатенации в уроке про «echo». Так что добавьте его, или уберите отсюда утверждение что он там есть )

  2. myblaze 24.01.2013 21:44

    Александр, действительно, спасибо большое, исправлю завтра :)
    UPD: все исправлено 25.01.13

  3. Миша — 04.03.2013 12:36

    Вот тут норм всё изложено, только «вы хотите увеличить счетчик на 1:
    $counter = $counter + 3;», хотим на 1, а увеличиваем почему на 3! После c#, php как детский рассказ, после войны и мира :D

  4. myblaze 09.03.2013 14:52

    Миша, 1 исправил на 3, спасибо :)
    Насчет C# тут не знаю, смотря с какой стороны посмотреть. На оффлайн работе я программирую на шарпе, а дома иногда забавляюсь с пхп, и так и тут своя специфика и тонкости. Как говорится, кто на что учился ))

  5. Султан — 22.03.2013 15:36

    я вообще не могу понять а для чего вы добавляете дочку перед переменными?

  6. Александр — 22.03.2013 15:59

    Султан, какую дочку? А точка является конкатенатором — сцепляет строки. В уроке про echo есть в конце зачем это нужно.
    Если возмём две строковых переменных типа:

    $a = «SUPER»;
    $b = «MAN»;
    // то при вызове следующей конструкции:
    $c = $a.$b;
    // В переменную $c запишется «SUPERMAN»:
    print $c;

    Скопируйте весь этот блок и вставьте в редактор, запустите скрипт и увидите что получится.

  7. myblaze 22.03.2013 16:55

    Александр все верно говорит :)

  8. AlexxKur — 19.04.2013 15:25

    Спасибо большое за ваши уроки. Сейчас как-бы только верстаю, но сам понимаю, что без сего PHP «не туда и не сюда». Надеюсь все выйдет)

  9. myblaze 20.04.2013 09:38

    AlexxKur, не за что. Обязательно все получится)

  10. Александр — 26.06.2013 11:48

    Ребят учите C++, ПХП копия(почти) этого языка(я прочитал с 1-го урока и до этого и ничего нового :()

  11. Stas — 21.08.2013 17:34

    Aдмин! У тя столько ошибок что застрелится можно! Как понять:
    Инкремент ++ увеличивает на 1
    $ x = 4 ; e c h o » З н а ч е н и е п е р е м е н н о й с п о с т — и н к р е м е н т о м = » . $ x+ +

    как понять что З н а ч е н и е п е р е м е н н о й с п о с т — и н к р е м е н т о м = 4 А БЛЯТЬ!? Поясни!

  12. Stas — 21.08.2013 17:43

    Не извени канешно за мат! Но я не магу!

  13. AlexxKur — 21.08.2013 18:59

    Stas,
    Что «немогу»? Не можешь вести общение без мата? И поясни, что тебе «непонятна»?
    Инкрименты/жекрименты я часто юзаю в циклах (даже не часто, а всегда).
    $x = 5;
    echo $x++; // выведет результат выражения 5+1, ибо «++» = «+1».
    Александр,
    Почти согласен. Но уча эти два языка одновременно, в итоге не выучите ничего. А вот учить PHP после «Си» — легко. А главное : легко будет не освоение похожего в некоторых местах синтаксиса, а понимания алгоритма и «как это работает» .

  14. Stas — 21.08.2013 19:26

    AlexxKur, но у тебя написано:

    $x=4;
    echo «Значение переменной с пост — инкрементом=» . $x++;

    Зачем вообще добавлять ++ если результат тот же что $х=4 что и $х++ какая разница обьясни пожалуйста что значит ++? Ты же говорил что увеличивает на 1.

  15. AlexxKur — 21.08.2013 21:04

    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++ (новое значение будет равно предыдущиму).
    Вообщем почитайте раздел «циклы».
    Удачи!)

  16. Stas — 22.08.2013 09:44

    Ну а если, просто как у тебя в етом примере:
    $x=4;
    echo «Значение переменной с пост-инкрементом =» $x++
    Ничего же не меняется! Ето все равно что вместо $x++ ты поставил просто $x!! Я о том что оператор ++ ничего не дает в данном случае. И результат виден при выполнении цикла и все! Ты есть Вконтакте?

  17. kostya — 15.09.2013 22:19

    Stas механизм добавления еденицы x++ и ++x немного разный, хотя приводит к одному и тому же действию. К примеру. операция «;» ставится не спроста после каждого выражения. это конец команды, обрабатывающейся интерпретатором. вся программа фактически и состоит из набора такого рода команд и когда ты пишешь, x++ это означает что значение переменной $x будет увеличено только после завершения данной команды, пример echo $x++; здесь ты говоришь компу я хочу что бы значение в ячейке по адресу $x увеличилось на 1 только после завершения данной команды. То ессть толкьо после того как будет выведено $x после ; $x будет увеличена на 1. И в то же время если написать ++$x, то это означает немедленно увеличение значения на 1, не дожидаясь завершения данной команды.как то так…

  18. AlexxKur — 15.09.2013 23:41

    kostya,
    Спасибо за объяснение.

  19. kostya — 16.09.2013 00:52

    всегда рад помочь)

  20. Александр — 02.12.2014 13:04

    Читая комментарии, возникает вопрос: а в чём разница между «print» и «echo»?

  21. Геннадий — 28.12.2016 03:05

    Спасибо Вам большое. Отличные уроки одни из лучших на просторах интернета. Теперь изучать php стало намного интереснее и легче!

Добавить комментарий