Мы рассмотрели логические значения в предыдущей статье. Логические значения представляют истину или ложь. В PHP есть истинные логические значения, которые являются значениями, которые не являются истинными или ложными, но при оценке внутри выражения они могут действовать как они есть.

Лучшими примерами являются целые числа 0 и 1. Если мы передадим 1 в оператор if, PHP интерпретирует число 1 как истинное и выполнит оператор внутри тела. Если вы передадите 0 в оператор if, PHP будет интерпретировать 0 как ложный, поэтому он не будет выполнять оператор внутри тела оператора if.

<?php
if ( 1 ) {
  echo "This is a truthy value";
}
if ( 0 ) {
  echo "This is a falsy value";
}
?>

Фактически, мы можем добавить любое целое число, положительное или отрицательное, и PHP будет интерпретировать их как истинные. Он интерпретирует только 0 как ложь.

<?php
if ( -5 ) {
  echo "This statement will execute";
}
?>

Есть и другие ценности, которые считаются правдой и ложью. Пустая строка «» считается ложной.

<?php
$camera = "";
if ( $my_camera ) {
  echo "This statement won't execute";
}
?>

Непустая строка на самом деле считается истинной. Если у вас есть какая-либо строка со значением внутри нее, например «что-то случайное», это утверждение будет оценено как истинное.

<?php
$camera = "EOS R";
if ( $camera ) {
  // This statement executes
  echo "You have a nice camera";
}
?>

Даже если мы передали строку «false» в оператор if, она все равно будет считаться правдивой.

<?php
$some_string = "false";
if ( $some_string ) {
  echo "Yup, this will execute";
}
?>

Я знаю, что мы еще не рассмотрели массивы, но массив - это просто контейнер для хранения, который может хранить несколько значений, например несколько строк.

<?php
$cars = []; // empty array
if ( $cars ) {
  echo "Empty arrays are considered falsy";
}
?>

Пустые массивы считаются ложными по своей природе, поэтому оператор внутри тела не будет выполняться. Непустой массив считается истинным, поэтому оператор внутри тела будет выполнен.

<?php
$cars = ['MKIV Supra', 'R34 GTR', 'WRX STi'];
if ( $cars ) {
  echo "What a car collection!";
}
?>

Иногда разработчики предпочитают правдивые выражения, подобные приведенному выше, чтобы проверить, есть ли что-нибудь внутри массива. Если есть, выполните какой-нибудь код; Я предпочитаю явно проверять. В PHP есть функция count (), которая подсчитывает количество элементов внутри массива. Затем мы можем использовать оператор сравнения и явно проверить, есть ли один или несколько элементов внутри массива. Если есть, то выполните код. Если нет, пропустите это.

<?php
$cars = ['3000GT', 'S13 240sx', '240z'];
if ( count($cars) > 0 ) {
  echo "Another impressive collection.";
}
?>


dinocajic / php-7-youtube-tutorials
Код для руководств по PHP 7.x YouTube. github.com