Переменные, константы и операторы
Важным элементом каждого языка являются переменные, константы и операторы, применяемые к этим переменным и константам. Рассмотрим, как выделяются и обрабатываются эти элементы в PHP.
Переменные
Переменная в PHP обозначается знаком доллара, за которым следует ее имя. Например:
$my_varИмя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP: правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания.
В PHP 3 переменные всегда присваивались по значению. То есть когда вы присваиваете выражение переменной, все значения оригинального выражения копируются в эту переменную. Это означает, к примеру, что после присвоения одной переменной значения другой, изменение одной из них не влияет на значение другой.
<?php$first = ' Text '; // Присваиваем $first // значение // ' Text '$second = $first; // Присваиваем $second // значение // переменной $first$first = ' New text '; // Изменяем // значение // $first // на ' New text 'echo "Переменная с именем first равна " .$first <br>"; // выводим значение $firstecho "Переменная с именем second равна " .$second"; // выводим значение $second?>Пример 3. Присваивание по значению
Результат работы этого скрипта будет следующим:
Переменная с именем first равна New text Переменная с именем second равна TextPHP 4, кроме этого, предлагает еще один способ присвоения значений переменным: присвоение по ссылке. Для того, чтобы присвоить значение переменной по ссылке, это значение должно иметь имя, т.е. оно должно быть представлено какой-либо переменной. Чтобы указать, что значение одной переменной присваивается другой переменной по ссылке, нужно перед именем первой переменной поставить знак амперсанд &.
Рассмотрим тот же пример, что и выше, только будем присваивать значение переменной first переменной second по ссылке:
<?php$first = ' Text '; // Присваиваем $first // значение ' Text '$second = &$first; /* Делаем ссылку на $first через $second. Теперь значения этих переменных будут всегда совпадать */// Изменим значение $first// на ' New text '$first = ' New text ';echo "Переменная с именем first " . "равна .$first <br>"; // выведем значения обеих переменныхecho "Переменная с именем second " . "равна $second";?>Пример 4. Присваивание по ссылке
Этот скрипт выведет следующее:
Переменная с именем first равна New text.Переменная с именем second равна New text.То есть вместе с переменной $first изменилась и переменная $second.
Константы
Для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Такими величинами могут быть математические константы, пароли, пути к файлам и т.п. Основное отличие константы от переменной состоит в том, что ей нельзя присвоить значение больше одного раза и ее значение нельзя аннулировать после ее объявления. Кроме того, у константы нет приставки в виде знака доллара и ее нельзя определить простым присваиванием значения. Как же тогда можно определить константу? Для этого существует специальная функция define() . Ее синтаксис таков:
define("Имя_константы", "Значение_константы", [Нечувствительность_к_регистру])По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре.
Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant() с именем константы в качестве параметра.
<?php// определяем константу // PASSWORDdefine("PASSWORD","qwerty"); // определяем регистронезависимую // константу PI со значением 3.14define("PI","3.14", True);// выведем значение константы PASSWORD, // т.е. qwerty echo (PASSWORD);// тоже выведет qwerty echo constant("PASSWORD");echo (password);/* выведет password и предупреждение, поскольку мы ввели регистрозависимую константу PASSWORD */echo pi; // выведет 3.14, поскольку константа PI // регистронезависима по определению?>Пример 5. Константы в PHP
Кроме констант, объявляемых пользователем, о которых мы только что рассказали, в PHP существует ряд констант, определяемых самим интерпретатором. Например, константа __FILE__ хранит имя файла программы (и путь к нему), которая выполняется в данный момент, __FUNCTION__ содержит имя функции, __CLASS__ – имя класса, PHP_VERSION – версия интерпретатора PHP. Полный список предопределенных констант можно получить, прочитав руководство по PHP.
Операторы
Операторы позволяют выполнять различные действия с переменными, константами и выражениями. Мы еще не упоминали о том, что такое выражение. Выражение можно определить как все, что угодно, что имеет значение. Переменные и константы – это основные и наиболее простые формы выражений. Существует множество операций (и соответствующих им операторов ), которые можно производить с выражениями. Рассмотрим некоторые из них подробнее.
Таблица 1. Арифметические операторы | |||
Обозначение | Название | Пример | |
+ | Сложение | $a + $b | |
- | Вычитание | $a - $b | |
* | Умножение | $a * $b | |
/ | Деление | $a / $b | |
% | Остаток от деления | $a % $b | |
Таблица 3. Строковые операторы | |||
Обозначение | Название | Пример | |
. | Конкатенация ( сложение строк ) | $c = $a . $b (это строка, состоящая из $a и $b ) | |
Таблица 4. Операторы присваивания | |||||
Обозначение | Название | Описание | Пример | ||
= | Присваивание | Переменной слева от оператора будет присвоено значение, полученное в результате выполнения каких-либо операций или переменной / константы с правой стороны | $a = ($b = 4) +5; ( $a будет равна 9, $b будет равна 4 ) | ||
+= | Сокращение. Прибавляет к переменной число и затем присваивает ей полученное значение | $a += 5; (эквивалентно $a = $a + 5; ) | |||
.= | Сокращенно обозначает комбинацию операций конкатенации и присваивания (сначала добавляется строка, потом полученная строка записывается в переменную ) | $b = "Привет ";$b .= "всем"; (эквивалентно $b = $b . "всем"; ) В результате: $b="Привет всем" | |||
Таблица 5. Логические операторы | |||||
Обозначение | Название | Описание | Пример | ||
and | И | $a и $b истинны ( True ) | $a and $b | ||
&& | И | $a && $b | |||
or | Или | Хотя бы одна из переменных $a или $b истинна (возможно, что и обе) | $a or $b | ||
|| | Или | $a || $b | |||
xor | Исключающее или | Одна из переменных истинна. Случай, когда они обе истинны, исключается | $a xor $b | ||
! | Инверсия (NOT) | Если $a=True, то !$a=False и наоборот | ! $a | ||
Таблица 6. Операторы сравнения | ||||||
Обозначение | Название | Описание | Пример | |||
== | Равенство | Значения переменных равны | $a == $b | |||
=== | Эквивалентность | Равны значения и типы переменных | $a === $b | |||
!= | Неравенство | Значения переменных не равны | $a != $b | |||
<> | Неравенство | $a <> $b | ||||
!== | Неэквивалентность | Переменные не эквивалентны | $a !== $b | |||
< | Меньше | $a < $b | ||||
> | Больше | $a > $b | ||||
<= | Меньше или равно | $a <= $b | ||||
>= | Больше или равно | $a >= $b | ||||
Таблица 7. Операторы инкремента и декремента | ||||||
Обозначение | Название | Описание | Пример | |||
++$a | Пре- инкремент | Увеличивает $a на единицу и возвращает $a | <?$a=4;echo "Должно быть 4:" .$a++;echo "Должно быть 5:" .++$a;?> | |||
$a++ | Пост- инкремент | Возвращает $a, затем увеличивает $a на единицу | ||||
--$a | Пре- декремент | Уменьшает $a на единицу и возвращает $a | ||||
$a-- | Пост- декремент | Возвращает $a, затем уменьшает $a на единицу | ||||
Типы данных
PHP поддерживает восемь простых типов данных.
Четыре скалярных типа:
- boolean (логический) ;
- integer (целый) ;
- float (с плавающей точкой) ;
- string (строковый).
Два смешанных типа:
- array (массив) ;
- object (объект).
И два специальных типа:
- resource (ресурс) ;
- NULL.
В PHP не принято явное объявление типов переменных. Предпочтительнее, чтобы это делал сам интерпретатор во время выполнения программы в зависимости от контекста, в котором используется переменная. Рассмотрим по порядку все перечисленные типы данных.