Уроки PHP - урок 5 - Логические переменные PHP
Итак, мы теперь знаем, что в PHP есть числа, есть строки. Но это далеко не предел, в этом уроке мы рассмотрим еще один вид переменных, а точнее Логические переменные. Логическими они называются потому что используются для построение логики нашего кода. Допустим есть какая-то ситуация в которой при различных условиях нужно делать разные действия. У вас есть стакан с водой, из которого вы хотите пить, но если в нем будет мало воды, то вы не напьетесь, а если много воды, то когда вы стакан наклоните вода польется на вас. Поэтому нужно долить воды или отлить воду в зависимости от наполненности стакана.
Это можно представить в следующем виде:
$количество_воды_в_стакане = 100;
$мало_воды = ПРАВДА;
ЕСЛИ $мало_воды
ТО $количество_воды_в_стакане = $количество_воды_в_стакане + 20;
В этом случае переменная $мало_воды логическая переменная, которая может принимать значение TRUE (правда) или FALSE (ложь). И не больше и не меньше. И еще код выше это не php, если его вставить в файл php, то apache выведет ошибку, поэтому подобный код на PHP:
$water = 100; $not_enough_water = TRUE; if($not_enough_water){ $water = $water + 20; }
Про условный оператор if поговорим позже, а пока к ТРУ и ФОЛС. Обычно помимо TRUE и FALSE используют 1 и 0. Так зачем же использовать отдельно TRUE и FALSE и усложнять себе жизнь. Помните я говорил, что переменная с целыми числами занимает в два раза меньше памяти, чем переменная с дробным числом. Так вот Логические переменные (TRUE или FALSE) занимают в памяти в 4 раза меньше, чем целые числа и в 8 раз меньше, чем дробные. Поэтому лучше использовать TRUE или FALSE, там где можно использовать.
Наверно у вас назрел вопрос, да к чему нам эта мелочь эти биты памяти, у меня на сервере 8 Гигабайт оперативной памяти. А теперь давайте представим, что у нас есть сайт на котором 1000 целочисленных переменных, которые можно заменить на логические. Получается что при запросе сайта тратиться, только на эти переменные 4 мегабайта памяти. При этом в логических переменных это 1 мегабайт. А теперь давайте представим, что сайт запросили 100 пользователей одновременно. Получается 400 мегабайт на целочисленные переменный и всего 100 мегабайт при использование логических. Разница в 300 мегабайт. Конечно, пример упрощенный и взят с потолка, но принцип думаю вам понятен.
И еще о том как логические переменные становятся целочисленными.
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>Результат будет 2, то есть PHP сам сложит логический тип и число, поэтому не бойтесь за несовместимость типов.