AGAVA partners programs http://agava.ru/partners/            

Название функции

             
Веб-курсы


Что это?

Оглавление

Основы
Основы основ

Практика
Гостевая книга
Простой сайт
Структура сайта (MVC)
Ядро (Light)
Ядро
Гостевая на SQL
Статические страницы
Модуль новостей
Система регистрации

Теория
Дебаггинг
Регулярные выражения
Введение в ООП
Паттерны проектирования

Репозитарий
BB-code
Почтовый класс
Пагинатор
Всякие полезности

Download
Полезные утилиты

Разное
Видеокурсы
Последние изменения
Вопросы и замечания сюда



Реклама

Диеты для похудения
Фреймворк Kohana. Обучение. Мануал на русском.







Основные операции

Для того, что бы производить какие-то действия с данными, в php имеются операции. То есть команды на выполнение определенных действий.
Операцию (присвоения) мы уже рассмотрели. Напомним. Чтобы записать в переменную данные (наполнить содержимым или если грамотно - присвоить значение) используется математический знак "равно".

1
2
3
 
$a 
20;

Далее следуют математические операции. Тут никаких особых различий с алгеброй:

1
2
3
4
5
6
7
8

 
    $a 
$b $c// Сложение (сумма) 
    
$a $b $c// Вычитание (разность) 
    
$a $b $c// Умножение (произведение) 
    
$a $b $c// Деление (частное) 
    
$a $b $c// Деление по модулю (остаток от деления)

Операции инкремента и декремента. Это придумано для ленивых (шутка)

1
2
3
4
5
6
7
8
9
10
11
12
13
14

 
// Инкремент (увеличение на единицу) эти четыре строки идентичны. 
    
$a $a 1
    
$a += 1
    ++
$a// Префиксная форма. 
    
$a++; // Постфиксная форма 
  
// Декремент (уменьшение на единицу) эти четыре строки идентичны. 
    
$a $a 1
    
$a -= 1
    --
$a// Префиксная форма. 
    
$a--; // Постфиксная форма

Префиксная и постфиксная формы инкремента и декремента отличаются тем, что при первом сначала значение увеличивается, потом считывается значение. При постфиксной наоборот.

Потом операции сравнения.

1
2
3
4
5
6
7
8
9
10
11

 
    $a 
== $b;  // Равно (а равно б)  
    
$a === $b// Строго равно (если у переменных $a и $b одинаковы и значения и типы) 
    
$a != $b;  // Не равно (а не равно б)  
    
$a !== $b// Строго не равно (если переменные $a и $b отличаются значением или хотя бы типом) 
    
$a $b;   // Больше (а больше чем b) 
    
$a $b;   // Меньше (а меньше чем b)  
    
$a >= $b;  // Больше или равно (а больше чем b либо равна b) 
    
$a <= $b;  // Меньше или равно (а меньше чем b либо равна b) 

Выражения с операторами сравнения возвращают булево значение ложь (false) либо истину (true).
Что сия инсинуация значит. Это значит, что на том месте, где написано выражение, появится его результат. То есть:

1
2
3
4
5
6
7

 
    $a 
1;  
    
$b 2;  
    (
$a != $b// Истина. Значит, в это место php при выполнении программы поставит true  
    
(  true  // Эта запись идентична верхней при соблюдении условий.

Логические операции. Иногда нужно выполнить несколько проверок, чтобы докопаться до истины. Допустим "сегодня пятница?" и "время больше 17-00?" Если совпали оба условия, то можно кричать ура.
Вот чтобы выполнить несколько проверок операторами сравнения, существуют логические операции.

1
2
3
4
5

 
    $a 
== $b && $a != $c// Логическое "и" (а равно б и а не равно с)  
    
$a == $b || $a == $c// Логическое "или" (а равно б или а равно с) 

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

Еще есть оператор инверсии. То есть не, отрицание.

1
2
3
4
5
6

 
// Эти две записи идентичны, хотя операции выполняются разные. 
    
($a != $b)  // Здесь сравниваются а и б. если они не равны, то выражение истинно 
   
!($a == $b)  // Здесь при неравных а и b выражение ложно. Но знак инверсии превращает его в истину

Еще есть операция конкатенации. Для того чтобы к одной строке "приклеить" вторую, используется конкатенация (знак "точка")

1
2
3
4
5
6

 
    $a 
'Привет, '
    
$b 'Мир!'
    
$c $a $b// Переменная $c будет содержать строку "Привет, Мир!"

Символ перечисления (запятая) позволяет разделить данные при передаче их в функции или в массивах.

1
2
3
4
5

 
    $forcemeat 
meat_grinder($pork$beef);

Приоритеты выполнения математических операторов похожи на те, которые присущи алгебре. Но алгебраическая нотация (на мой взгляд) куда менее строгая и куда более запутанная, чем нотация большинства языков программирования.

1
2
3
4
5
6

 
$a 
$b $c $d;   // Сначала выполнится умножение с на d, потом к произведению прибавится b 
$a = ($b $c) * $d// Сначала выполнится сложение b и c  потом сумма умножится на d

У логических операторов приоритет "и" выше, чем приоритет "или"

Кроме того , кроме приоритета есть еще и направление вычисления одноприоритетных операций, или так называемая ассоциативность.
Именно поэтому (5-2-1)
вычисляется как 2 = ((5-2) - 1)
а не как 4 = (5 - (2-1))


Хотя $p=$q=4 (не забываем, = это операция присваивания, а не оператор)
вычисляется как ($p = ($q=4))
a не как (($p=$q) = 4)

Рейтинг@Mail.ru Рейтинг@Mail.ru Яндекс цитирования
irbis-team © 2009