Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Уроки PHP - урок 5 - Логические переменные PHP

08/12/2019, by Ivan

Итак, мы теперь знаем, что в 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 сам сложит логический тип и число, поэтому не бойтесь за несовместимость типов.