Начиная с этой статьи будим более подробно разбираться с основами...
Начнем с базовой части языка PHP - выражения. Выражения представляет собой сочетание значений, переменных, операторов и функций, в результате вычисления которого выдается новое значение. Выражение знакомо всем из курса школьной алгебры:
На языке PHP это будет выглядеть так:
$у = 3 * $а + 4 * $b - $c |
Возвращаемое значение может быть целое число, число с плавающей запятой, строкой или булевым значением. В нашем случаи это $y. С числовыми и строковыми значениями мы уже встречались, поэтому поговорим о булевых значениях.
В PHP булевыми значениями могут быть TRUE (истина) и FALSE (ложь). Выражение 20 > 9 является истинным (TRUE), а выражение 5 == 6 является ложным (FALSE). Далее приведем пример показывающий работу булевых операций в действии:
<?php
echo "a: [" . (20 > 9) . "]<br>";
echo "b: [" . (5 == 6) . "]<br>";
echo "c: [" . (1 == 0) . "]<br>";
echo "d: [" . (1 == 1) . "]<br>";
?> |
Результат работы кода будет:
a: [1]
b: []
c: []
d: [1] |
Почему же получились такие странные результаты? Все дело в том, что в языке PHP константе TRUE имеет значение 1, а константа FALSE - NULL (ничего). Таким образом, где результат выражений равен TRUE мы получаем 1, а где FALSE нет ничего. Данную особенность языка нужно учитывать при проверке выражений.
К примеру, в С++ значение true любое число больше нуля, а false равно 0 (нуль).
Литералы и переменные
Литерал - это простейшая форма выражения, означающее нечто, вычисляющееся само в себе, например число 77 или строка "World". Переменная так же является выражение, если ей присваивается не вычисляемое значение. Обе формы относятся к типам выражений, поскольку они возвращают значение.
Приведем несколько примеров:
<?php
$myname = "Brian";
$myage = 37;
echo "a: " . 73 . "<br>"; // Числовой литерал
echo "b: " . "Hello" . "<br>"; // Строковый литерал
echo "c: " . FALSE . "<br>"; // Литерал константы
echo "d: " . $myname . "<br>"; // Строковая переменная
echo "e: " . $myage . "<br>"; // Числовая переменная
?> |
Результат работы кода (возвращаемые значения) будет таким:
a: 73
b: Hello
c:
d: Brian
e: 37 |
Объединив простейшие выражения с операторами, можно создать более сложные выражения, результатом вычисления которых будут какие-нибудь полезные результаты.
При объединении присваивания или управляющей конструкции с выражениями получается инструкция.
<?php
$days_to_new_year = 366 - $day_number; // Выражение
if ($days_to_new_year < 30)
{
echo "Скоро новый год!"; // Инструкция
}
?> |
В первой строке мы присваиваем результат выражения 366 - $day_number переменной $days_to_new_year. Далее идет инструкция вывода сообщения, если выражение $days_to_new_year < 30 будет равно TRUE.
Более краткой формой инструкции будет:
if ($days_to_new_year < 30) echo "Скоро новый год!"; // Инструкция |
Неявные и явные преобразование типов
PHP является языком со слабой типизацией, который позволяет объявлять переменную и ее тип путем простого использования этой переменной. При необходимости он также осуществляет автоматическое преобразование одного типа в другой. Этот процесс называется неявным преобразованием типов.
<?php
$a = 56;
$b = 12;
$c = $a / $b;
?> |
В приведенном примере, переменные $a и $b неявно приводятся к целому числу (int). А переменная $c уже приводится к числу с плавающей запятой (float).
Что делать, если результат так же нужно получить целое число? Этого можно добиться разными способами, один из которых принудительное преобразование результата к целому числу используя оператор преобразования (int).
Такой способ называется явным преобразованием типов. Для преобразования результата необходимо все выражение брать в скобке, в противном случаи преобразуется только первая переменная.
Ниже приведена таблица явных преобразований к нужным типам.
Типы преобразования |
Описание |
(int) (integer) |
Преобразование в целое число путем отбрасывания десятичной части |
(bool) (boolean) |
Преобразование в логическое значение |
(float) (double) (real) |
Преобразование в число с плавающей точкой |
(string) |
Преобразование в строку |
(array) |
Преобразование в массив |
(object) |
Преобразование в объект |
По мима явного преобразования к нужному типу можно использовать функции приведения к типам, например функция intval приводит к целому числу.
|