PHP - Урок 7. Переменные, константы и условия

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 можно использовать для любых целей известных в программировании.


В следующем уроке мы будем разбираться с условным оператором switch - это очень важный оператор языка, поэтому мы на нем остановимся подробно. Фактически это начало любого крупного проекта (часто без него не обойтись даже если применяется для разработки каркас MVC). Поэтому курс я продумал именно так :) А на сегодня все.
образованиеphpакадемияобучение
77
1064.373 GOLOS
0
В избранное
Руслан Дорофеев
Сетевое программирование
77
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (4)
Сортировать по:
Сначала старые