Мы рассмотрели логические значения в предыдущей статье. Логические значения представляют истину или ложь. В 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."; } ?>