Выражения в PHP
Выражения - это краеугольный камень PHP. Почти все, что вы пишите в PHP, является выражением. Выражения являются "кирпичиками", из которых состоят PHP-программы. Под выражением в PHP понимается то, что имеет значение. И обратно: если что-то имеет значение, то это "что-то" и есть выражение.
Основными формами выражений являются константы и переменные. Например, если вы записываете "$a = 100", вы присваиваете '100' переменной $a:
$a = 100;
В приведенном примере $a - это переменная, = - это оператор присваивания, а 100 - это и есть выражения. Его значение 100.
Выражением может быть и переменная, если ей сопоставлено определенное значение:
$x = 7;
$y = $x;
В первой строке рассмотренного примера выражением является константа 7, а во второй строке - переменная $x
, т.к. ранее ей было присвоено значение 7. $y = $x
также является выражением.
Немного более сложными примерами выражений являются функции. Например, рассмотрим следующую функцию:
<?php
function funct ()
{
return 5;
}
?>
Исходя из того, что вы хорошо знакомы с концепцией функций (если нет, то прочитайте раздел о пользовательских функциях), вы полагаете, что запись $x = funct() абсолютно эквивалента записи $x = 5, и вы правы. Функции - это выражения, значением которых является то, что возвращает функция. Поскольку funct() возвращает 5, значением выражения 'funct()' является 5. Как правило, функции возвращают не статическое значение, а вычисленное.
PHP поддерживает три типа скалярных значений: целочисленные, с плавающей точкой и строковые значения (скалярными являются значения, которые вы не можете 'разбить' на меньшие части, в отличие, например, от массивов). PHP поддерживает также два комбинированных (не скалярных) типа: массивы и объекты. Каждый из этих типов значений может присваиваться переменной или возвращаться функцией.
PHP - это язык, ориентированный на выражения и рассматривающий почти все как выражение. Вернемся к примеру, с которым мы уже имели дело: '$x = 7'. Легко заметить, что здесь присутствуют два значения - значение целочисленной константы '7' и значение переменной $x, также принимающей значение 7. Но на самом деле здесь присутствует и еще одно значение - значение самого присвоения. Само присвоение вычисляется в присвоенное значение, в данном случае - в 7. На практике это означает, что '$x = 7', независимо от того, что оно делает, является выражением со значением 7. Таким образом, запись '$y = ($x = 7)' равносильна записи '$x = 5; $y = 5;' (точка с запятой обозначает конец выражения). Поскольку операции присвоения анализируются справа налево, вы также можете написать '$y = $x = 7'.
Логические выражения
Логические выражения — это выражения, у которых могут быть только два значения: ложь и истина (или, что почти то же самое, 0 и 1). Однако, если говорить более строго, то абсолютно любое выражение может рассматриваться как логическое в "логическом" контексте (например, как условие для конструкции if-else). Ведь в качестве TRUE (истины) может выступать любое ненулевое число, непустая строка и т. д., а под FALSE (ложью) подразумевается все остальное.
Для логических выражений справедливы все свойства логических переменных. Эти выражения чаще всего возникают при применении операторов >, < и == (равно), || (логическое ИЛИ), && (логическое И), ! (логическое НЕ) и других. Например:
$a = 10 < 5; // $a = false
$a = $b==1; // $a=true
$a = $b >= 1&& $b <= 10; // $a = true, если $b в пределах от 1 до 10
$a = !($b || $c) && $d; // $a = true, если $b и $c ложны, а $d — истинно
Как осуществляется проверка истинности той или иной логической переменной? Точно так же, как и любого логического выражения:
$b = $a >= 1 && $a <= 10; // присваиваем $b значение логического выражения
if($b) echo "a в нужном диапазоне значений";
Подробнее о логических операциях смотрите здесь
Строковые выражения
Строки в PHP — одни из самых основных объектов. Они могут содержать текст вместе с символами форматирования или даже бинарные данные.
Определение строки в кавычках или апострофах может начинаться на одной строке, а завершаться — на другой. Вот пример строкового выражения:
$a = "Это текст";
Подробно о строках в PHP смотрите здесь