PHP - Урок 7. Переменные, константы и условия
Предыдущие уроки:
Программируем на PHP - Введение
PHP - Запросы от браузера к серверу
PHP - Как работает сервер
PHP - Урок 4. PHP - интерпретатор
PHP - Урок 5. Переменные сервера и глобальные переменные
PHP - Урок 6. Конструкции print и echo. Кавычки одинарные и двойные и конкатенация строк
Переменные
Любая программа имеет место в памяти. Либо в стеке, либо выделяемое для нее на время ее работы в `куче`. Проще говоря в специальном буфере, который периодически очищается от ненужных данных.Переменные - это просто указатели, на участки в этом буфере на определенные кусочки памяти для хранения там данных (часто сравнивают с ячейками).
Например у каждой ячейке есть номер (смещение) в памяти. А само название переменной - это подпись на бумажке (такие зеленые налепляют в офисах) она дополняет этот номер для удобства. Что бы не забыть, что в ящике хранится.
Все переменные в PHP начинаются со знака доллара $
.
Переменные в PHP не типизированные. Это означает что нам не нужно указывать ей тип явно. Интерпретатор его определит сам по значению, присваиваемому переменной.
Например:
$num = 123; // Тип числа
$float_num = 12.13; // Тип числа с плавающей точкой
$string_var1 = 'Это строка'; // Строковый тип
$string_var2 = "И это строка'; // Тоже строковый тип
и т.д.
Он очень просто это определяет - если без кавычек - число. Без кавычек и с точкой - число с плавающей точкой. Строка соответственно с кавычками.
Например $str_num = "123";
будет расцениваться как строка.
Интерпретатор умеет не только определять тип переменных. Обычно он это делает во время конкатенации или подстановки, а также в случае арифметических операций над строками. Допустим если мы присвоим число со строкой, таким вот образом:
$str_num2 = "Это строка $num";
То $num будет преобразован в строку.
Таким образом $str_num2
будет иметь значение Это строка 123
.
Константы
Если переменные указатели на место в памяти, где хранятся значения, и соответственно их можно перезаписывать, то константы - записаны в сам код программы. Под константами в программировании могут подразумневаться как обычные строки и числа. Так и определенные с помощью функций или подобно переменным идентификаторы на эти значения. Так как идентификатор хоть и указывает на значение, но оно записано жестко в коде программы, то менять его нельзя. Доступ к этой памяти охраняет операционная система, с помощью специальных сегментных регистров.
Однако идентификаторы на константы часто полезны. Например их можно определить как сокращения в начале программы (скрипта) а затем использовать в коде.
Примеры определения констант в PHP
define('MY_NAME', 'Ruslan Dorofeev'); // Определяем с помощью функции (Процедурный подход)
const MY_NAME = 'Ruslan Dorofeev'; // Определяем с помощью конструкции const (Чаще так делают любители ООП)
Условия
Синтаксис условия в самом простом случае выглядит так
if(УСЛОВИЕ){
// Какой-нибудь код
}
Если данную конструкцию вставить в каком либо месте нашего скрипта (PHP-файла) то он выполнится только если вычисление операторов в УСЛОВИЕ больше 0 (равно TRUE).
Иначе интерпретатор просто пройдет мимо того, что в фигурных скобках после условия.
Если нужно таки выполнить какой-то код по-умолчанию, добавляется блок else:
if(УСЛОВИЕ){
// Какой-нибудь код
} else {
// Этот выполнится если УСЛОВИЕ будет равно 0 (FALSE)
}
Также можно добавлять блоки elseif - в них можно определять дополнительные условия, которые могут быть вычислены в результате прохода интерпретатора по коду с блоками условий.
В моей практики основные операции, которые выполняются в условиях - это правильности работы функций (вызов функции можно поместить в условие), проверка правильности введенных из формы данных (сравнением их, например с регулярными выражениями), а также определение действия, которое должно быть выполнено в скрипте (например test.php?act=save) тут мы в условии ищем ($_GET['act'] == 'save') и выполняем действия в нужной ветки условия.
Приведу некоторые примеры условий if:
if(myfunction()){
echo "Функция myfunction благополучно выполнила свое дело";
} else {
echo "Функция myfunction возвратила 0 или FALSE - это скорее всего говорит что при ее выполнении произошла ошибка";
}
Другой пример с получением данных переданных из запроса клиента серверу.
$act = htmlspecialchars($_GET['act']); // Функция htmlspecialchars экранизирует специальные символы - это дополнительная защита от взломщиков нашего сайта
if($act == 'save'){
echo 'Выполнить действие SAVE';
} else if($act == 'del') {
echo 'Выполнить действие DEL';
} else {
echo 'Такого действия мы не знаем. Можно выполнить что-то по умолчанию';
}
Это наиболее частые случаи. Хотя конечно же условия в PHP можно использовать для любых целей известных в программировании.
Привет!
Этот пост был выбран Академией Голоса и попал в список программы поддержки качественных образовательных постов.
Ссылка на твой пост будет опубликована в отчете Академии.
Спасибо за полезный контент (ノ◕ヮ◕)ノ*:・゚✧
Спасибо.
По javascript есть уроки, по php теперь тоже. Как раз заинтересовался ими на днях. Очень помогаете!
Спасибо. Стараемся))