Константы, применяются для хранения каких то, наперед заданных значений, которые не меняются по ходу выполнения программы. Такими значениями могут быть некие математические величины (например курсы валют), пути к файлам, идентификаторы. Константы отличаются от переменных тем, что им нельзя присвоить значение больше одного раза и они в PHP не предваряются знаком $.
Пример:
// Пусть определена константа KURS равная 30.11, в которой хранится значение у.е. в рублях
$value = KURS*30 // вычисляем стоимость покупки в рублях
echo "Курс у.е. KURS"; // выведет "Курс у.е.KURS";
echo "Курс у.е.".KURS; // выведет "Курс у.е. 30.11";
Как видно из примера, отсутствие знака $ перед именем переменной не всегда удобно.. Константы внутри строки в кавычках не интерполируются интерпретатором.
Предопределенные константы
Предопределенные - константы, которые устанавливает сам интерпретатор. Их список достаточно велик, поэтому, дабы не увеличивать размер сегодняшнего выпуска по пустякам, советую вам самим обратиться к PHP Manual и посмотреть.
Константы определяемые программистом
PHP позволяет нам самим определять те константы, которые необходимы. Делается это с помощью оператора define().
bool define ( string name, mixed value [, bool case_insensitive]);
Объявляет новую константу с именем name и значением value. Если необязательный параметр case_insensitive равен TRUE, то в дальнейшем регистр букв константы учитывается. (по умолчанию так и есть)
Пример:
define ("PI",3.1459); // числовая константа
define ("TEXT", "Значение константы PI равно "); // текстовая константа
echo cos(PI/4); // считаем косинус 45 градусов
echo TEXT.PI; // выводим строчку "Значение константы PI равно 3.1459";
*Здесь и в дальнейшем я буду использовать для описания функций и операторов синтаксис официального руководства (PHP Manual)
в PHP так же существует функция проверки существования константы.
bool defined ( string name);
Возвращает TRUE, если константа с именем name определена.
Выражение представляет собой конструкцию, определяющую состав данных, операции и порядок выполнения операций над данными. Выражения состоят из операндов - данные над которыми выполняется действие и знаков операций - которые определяют действие над операндом. Простейший пример выражения - переменная или константа после оператора присваивания.
$a = 10; // число 10 это выражение, так как оно имеет значение равное 10
$b = $a; // это тоже выражение и оно так же будет иметь значение 10
Это пример простых выражений. Выражения могут быть сложными например:
$a = ($b+10)/2; // или
$c = $a*12+sin($b=$d/3);
Как видно каждое выражение имеет свой тип значения.
По своему типу выражения делятся на
арифметические - операции с числами
$a = 10+12; // выражение принимает числовое значение равное 22
$b = $a*0.01; // выражение принимает числовое значение равное 0.22
логические - выражения которые могут принимать только два значения "истина" (TRUE) и
"ложь" (FALSE).
$a = 10<12; // $a=TRUE
$b = !$b; // $a=TRUE если $b=FALSE и наоборот
строковые - содержат текст вместе с символами форматирования.
$a.$b - слияние
$a[n] - символ в позиции в n строки $a
Например:
$a = '1234567890';
echo $a[0]; // выведет символ 1
присваивания:
$a = 10; // присвоить переменной $a значение 10
$a += 4; // прибавить к $a 4
$a *= 4; // умножить $a на 4
$a = "Hello";
$a .= " World"; // теперь в $a "Hello World"
и т.д. по одному на каждую арифметическую, строковую или другую операцию.
инкремента и декремента:
$a++; // увеличивает $a на 1
$a--; // уменьшает $a на 1
Есть несколько тонкостей использования этих операций. Так, если вы используете инкремент или декремент в выражении, то возвращается значение до изменения:
$a=10;
$b = $a++; // $a = 11; $b = 10;
Как видно сначала в $b было присвоено значение 10, и только потом увеличилась переменная $a
Существуют так же парные рассмотренным операторам, которые указываются перед именем переменной. Соответственно и возвращают они значение переменной после изменения:
$a=10;
$b = ++$a; // $a = 11; $b = 11;
битовые операции:
Эти операции предназначены для установки/снятия/проверки групп битов целых чисел.
$a & $b - результат - число у которого установлены только те биты, которые установлены и у $a и У $b
$a | $b - результат - число у которого установлены только те биты, которые установлены либо в $a, либо в $b (или одновременно)
~ $a - результат - число у которого вместо 1 в $a cтоят 0, и наоборот
$a << $b - поразрядный сдвиг $a на $b битов в лево
$a >> $b - то же вправо.
операции стравнения:
$a == $b - истина, если $a равно $b
$a != $b - истина, если $a не равно $b
$a < $b - истина, если $a меньше $b
$a > $b - истина, если $a больше $b
$a <= $b - истина, если $a меньше или равно $b
$a >= $b - истина, если $a больше или равно $b
В PHP с помощью этих операций сравнивать можно только скалярные величины. Для массивов или объектов этого делать нельзя.
операции эквивалентности:
Очень часто оператор == не справляется со своей функцией, и зачастую это может привести к не совсем очевидным ошибкам.
Например:
$a=0; // ноль
$b=""; // пустая строка
$a==$b // выражение будет иметь значение TRUE, т.е. a и b равны
Данную проблему решает оператор эквивалентности === (тройное равенство). Он не только сравнивает значения,
но и их типы.
$a=0; // ноль
$b=""; // пустая строка
$a===$b // выражение будет иметь значение FALSE, т.е. a и b не равны
С помощью оператора === можно в отличии от == сравнивать массивы и объекты;
$a=array('a'=>'aaa');
$b=array('b'=>'bbb');
if ($a==$b) echo "Массивы равны (==)";
if ($a===$b) echo "Массивы равны (===)";
при выполнении будет выведена только строка "Массивы равны (==)"
логические операции:
!$a // отрицание, TRUE если $a=FALSE и наоборот
$a && $b // "и", TRUE если a и b равны TRUE
$a||$b // "или", TRUE если или a=TRUE или b=TRUE , или они оба
Вычисление логических выражений, содержащих эти операции, всегда идет слева на право.