Форум, знакомства, фото, чат, общение

Здравствуйте, гость ( Вход | Регистрация )

Приглашаем Информационных Партнеров!
> Случайные изображения












> Операторы В Php

шпунтик
сообщение 7.9.2009, 7:23
Сообщение #1


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Операторы в PHP
Оператором называется нечто, состоящее из одного или более значений (выражений, если говорить на жаргоне программирования), которое можно вычислить как новое значение (таким образом, вся конструкция может рассматриваться как выражение). Отсюда следует, что функции или любые другие конструкции, которые возвращают значение (например, print()) являются операторами, в отличие от всех остальных языковых конструкций (например, echo()), которые ничего не возвращают.

Операторы бывают трех видов. Во-первых, это унарные операторы, которые работают только с одним аргументом, например, ! (оператор отрицания) или ++ (инкримент). Вторую группу составляют бинарные операторы: в нее входят большинство поддерживаемых в PHP операторов, полный список которых вы можете найти в разделе Приоритет (порядок) выполнения операторов.

И последнюю, третью группу составляет тернарный оператор ?:. Он используется для условного выбора между двумя операторами, в зависимости от результата вычисления третьего оператора. Говоря другими словами, он позволяет определить две альтернативные ветви дальнейшего выполнения. Тернарный оператор рекомендуется заключать в круглые скобки.

  • Приоритет выполнения операторов
  • Арифметические операторы
  • Оператор присвоения
  • Побитовые операторы
  • Операторы сравнения
  • Оператор управления ошибками
  • Операторы исполнения
  • Операторы инкремента и декремента
  • Логические операторы
  • Строковые операторы
  • Операторы, работающие с массивами
  • Оператор проверки принадлежности к классу

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 12)
шпунтик
сообщение 7.9.2009, 8:44
Сообщение #2


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Приоритет выполнения операторов в PHP
Приоритет операторов определяет, насколько "тесно" связанны между собой два выражения. Например, выражение 1 + 5 * 3 вычисляется как 16, а не 18, поскольку операция умножения ("*") имеет более высокий приоритет, чем операция сложения ("+"). В случае, если операторы имеют одинаковый приоритет, они будут выполняться слева направо. Круглые скобки могут использоваться для принудительного указания необходимого порядка выполнения операторов. Например, выражение (1 + 5) * 3 вычисляется как 18.

В следующей таблице приведен список операторов, отсортированный по убыванию их приоритетов. Операторы, размещенные в одной строке имеют одинаковый приоритет и порядок их выполнения опроделяется исходя из их ассоциативности.

Код
Ассоциативность Оператор
неассоциативна..... | new
правая............. | [
неассоциативна..... | ++ --
неассоциативна..... | ! ~ - (int) (float) (string) (array) (object) @
левая.............. | * / %
левая.............. | + - .
левая.............. | < >>
неассоциативна..... | < <= > >=
неассоциативна..... | == != === !==
левая.............. | &
левая.............. | ^
левая.............. | |
левая.............. | &&
левая.............. | ||
левая.............. | ? :
правая............. | = += -= *= /= .= %= &= |= ^= <= >>=
левая.............. | and
левая.............. | xor
левая.............. | or
левая.............. | ,

Левая ассоциативность подразумевает, что выражение вычисляется слева направо, правая ассоциативность соответственно подразумевает противоположный порядок.

Вы можете использовать круглые скобки для повышения читабельности кода.
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 8:51
Сообщение #3


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Арифметические операторы в PHP
Помните школьные основы арифметики? Описанные ниже операторы работают так же.

Арифметические операции
Код
Пример. | Название......... | Результат
-$a ... | Отрицание........ | Смена знака $a.
$a + $b | Сложение......... | Сумма $a и $b.
$a - $b | Вычитание........ | Разность $a и $b.
$a * $b | Умножение........ | Произведение $a и $b.
$a / $b | Деление.......... | Частное от деления $a на $b.
$a % $b | Деление по модулю | Целочисленный остаток от деления $a на $b.

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

Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 8:53
Сообщение #4


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Оператор присвоения в PHP
Базовый оператор присвоения обозначается как =. На первый взгляд может показаться, что это оператор "равно". На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения (т.е. устанавливается результирующим значением).

Результатом выполнения оператора присвоения является само присвоенное значение. Таким образом, результат выполнения $a = 3 будет равен 3. Это позволяет использовать конструкции вида:

Код
<?php
$a = ($b = 4) + 5; // результат: $a установлена значением 9, переменной $b присвоено 4.
?>


В дополнение к базовому оператору присвоения имеются "комбинированные операторы" для всех бинарных арифметических и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:

Код
<?php
$a = 3;
$a += 5; // устанавливает $a значением 8, аналогично записи: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // устанавливает $b строкой "Hello There!", как и $b = $b . "There!";
?>


Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных на другой никак не отражаются. Начиная с PHP 4, также поддерживается присваивание по ссылке, используя синтаксис $var = &$othervar;, но в PHP 3 такая возможность отсутствует. "Присвоение по ссылке" означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит.
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 9:00
Сообщение #5


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Побитовые операторы в PHP
Побитовые операторы позволяют устанавливать конкретные биты в 0 или 1 для целочисленных значений. В случае если и левый, и правый операнды строки, побитовые операции будут работать с их ASCII-представлениями.

Код
<?php
echo 12 ^ 9; // Выведет '5'</P> <P>echo "12" ^ "9"; // Отобразит симовол возврата каретки (ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8</P> <P>echo "hallo" ^ "hello"; // Выведет следующие ASCII-значения: #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4
?>


Код
Пример   | Название         | Результат
$a & $b  | Побитовое "и"    | Устанавливаются только те биты, которые установлены и в $a, и в $b.

$a | $b  | Побитовое "или"  | Устанавливаются те биты, которые установлены либо в $a, либо в $b.

$a ^ $b  | Исключающее "или"| Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b

~ $a     | Отрицание        | Устанавливаются те биты, которые в $a не установлены, и наоборот.

$a << $b | Сдвиг влево      | Все биты переменной $a сдвигаються на $b позиций влево (каждая позиция подразумевает "умножение на 2")

$a >> $b | Сдвиг вправо     | Все биты переменной $a сдвигаються на $b позиций вправо (каждая позиция подразумевает "деление на 2")


Внимание Не используйте сдвиг вправо более чем на 32 бита на тридцатидвухразрядных системах. Не используйте сдвиг вправо для получения чисел, требующих для записи более тридцатидвух бит.


Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 9:08
Сообщение #6


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



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

Код
Пример    | Название              | Результат
$a == $b  | Равно                 | TRUE если $a равно $b.
$a === $b | Тождественно равно    | TRUE если $a равно $b и имеет тот же тип. (Добавлено в PHP 4)

$a != $b  | Не равно              | TRUE если $a не равно $b.
$a <> $b  | Не равно              | TRUE если $a не равно $b.
$a !== $b | Тождественно не равно | TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)

$a < $b   | Меньше                | TRUE если $a строго меньше $b.
$a > $b   | Больше                | TRUE если $a строго больше $b.
$a <= $b  | Меньше или равно      | TRUE если $a is меньше или равно $b.
$a >= $b  | Больше или равно      | TRUE если $a больше или равно $b.
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 9:09
Сообщение #7


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Оператор управления ошибками в PHP
PHP поддерживает один оператор управления ошибками: знак @. В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.

В случае, если установлена опция track_errors, все генерируемые сообщения об ошибках будут сохраняться в переменной $php_errormsg. Эта переменная будет перезаписываться при возникновении каждой новой ошибки, поэтому в случае необходимости проверяйте ее сразу же.

Оператор @ работает только с выражениями. Есть простое правило: если произвольная языковая конструкция возвращает значение, значит вы можете использовать предшествующий ей оператор @. Например, вы можете использовать @ перед именем переменной, произвольной функцией или вызовом include(), константой и так далее. В то же время вы не можете использовать этот оператор перед определением функции или класса, условными конструкциями, такими как if или foreach.
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 9:10
Сообщение #8


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Операторы исполнения в PHP
PHP поддерживает один оператор исполнения: обратные кавычки (``). Обратите внимание, что это не одиночные кавычки. PHP пытается выполнить строку, заключенную в обратные кавычки, как консольную команду, и возвращает полученный вывод (т.е. он не просто выдается на выходе а, например, может быть присвоен переменной). Использование обратных кавычек аналогично использованию функции shell_exec().

Код
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>


Обратные кавычки недоступны, в случае, если установлен безопасный режим или отключена функция shell_exec().
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 10:52
Сообщение #9


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Операторы инкремента и декремента в PHP
PHP, аналогично C, поддерживает префиксные и постфиксные операторы инкремента и декремента.

Код
Пример | Название              | Действие
++$a   | Префиксный инкремент  | Увеличивает $a на единицу и возвращает значение $a.
$a++   | Постфиксный инкремент | Возвращает значение $a, а затем увеличивает $a на единицу.
--$a   | Префиксный декремент  | Уменьшает $a на единицу и возвращает значение $a.
$a--   | Постфиксный декремент | Возвращает значение $a, а затем уменьшает $a на единицу.


PHP следует соглашениям Perl (в отличие от С) касательно выполнения арифметических операций с символьными переменными. Например в Perl 'Z'+1 будет вычислено как 'AA', в то время как в C 'Z'+1 будет вычислено как '[' ( ord('Z') == 90, ord('[') == 91 ). Следует учесть, что к символьным переменным можно применять операцию инкремента, в то время как операцию декремента применять нельзя.

Инкрементирование или декрементирование булевых переменных не приводит ни к какому результату.
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 10:57
Сообщение #10


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Логические операторы в PHP

Код
Пример    | Название          | Результат
$a and $b | Логическое "и"    | TRUE если и $a, и $b TRUE.
$a or $b  | Логическое "или"  | TRUE если или $a, или $b TRUE.
$a xor $b | Исключающее "или" | TRUE если $a, или $b TRUE, но не оба.
! $a      | Отрицание         | TRUE если $a не TRUE.
$a && $b  | Логическое "и"    | TRUE если и $a, и $b TRUE.
$a || $b  | Логическое "или"  | TRUE если или $a, или $b TRUE.


Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 10:58
Сообщение #11


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Строковые операторы в PHP
В PHP есть два оператора для работы со строками. Первый - оператор конкатенации ("."), который возвращает объединение левого и правого аргумента. Второй - оператор присвоения с конкатенацией, который присоединяет правый аргумент к левому.

Код
<?php
$a = "Hello ";
$b = $a . "World!"; // $b содержит строку "Hello World!"

$a = "Hello ";
$a .= "World!"; // $a содержит строку "Hello World!"
?>

Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 11:16
Сообщение #12


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Операторы, работающие с массивами в PHP

Код
Пример    | Название              | Результат
$a + $b   | Объединение           | Объединение массива $a и массива $b.
$a == $b  | Равно                 | TRUE в случае, если $a и $b содержат одни и те же элементы.
$a === $b | Тождественно равно    | TRUE в случае, если $a и $b содержат одни и те же элементы в том же самом порядке.
$a != $b  | Не равно              | TRUE если массив $a не равен массиву $b.
$a <> $b  | Не равно              | TRUE если массив $a не равен массиву $b.
$a !== $b | Тождественно не равно | TRUE если массив $a не равен тождественно массиву $b.


Оператор + присоединяет правый массив к массиву, размещенному слева НЕ перезаписывая элементы с дублирующимися ключами.

При сравнении элементы массива считаются идентичными, если совпадает и ключ, и соответствующее значение.
Go to the top of the page
 
+Quote Post
шпунтик
сообщение 7.9.2009, 11:17
Сообщение #13


Опытный Пользователь
****

Группа: Малёк
Сообщений: 241
Регистрация: 20.1.2009
Пользователь №: 14435



Оператор проверки принадлежности к классу в PHP
Оператор instanceof используется для определения того, является ли текущий объект экземпляром указанного класса .

Оператор instanceof был добавлен в PHP 5. До этого использовалась конструкция is_a(), которая на данный момент не рекомендуется к применению, более предпочтительно использовать оператор instanceof.

Код
<?php
class A { }
class B { }

$thing = new A;

if ($thing instanceof A) {
    echo 'A';
}
if ($thing instanceof B) {
    echo 'B';
}
?>


Поскольку объект $thing является экземпляром класса A, и никак не B, то будет выполнен только первый, опирающийся на класс A, блок:

A

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 


Текстовая версия Сейчас: 28.3.2024, 11:46

Операторы В Php - Форум




Рейтинг@Mail.ru Rambler's Top100

forum.ribca.net | Web Дизайн: WonderWorker | http://Ribca.Net