Как вывести bool php

PHP: Логический тип

Кроме арифметических операций со школы нам известны операции сравнения. Например, 5 > 4 . Это звучит как вопрос: «5 больше 4?». В данном случае ответ «да». В других случаях ответом может быть «нет» (например, для 3 ).

Операции сравнения не имеют привязки к числам. Сравнивать можно практически всё что угодно, например, строки. Каждый раз, когда мы входим на какой-то сайт, внутри происходит сравнение введенных логина и пароля с теми, какие есть в базе. И только если они есть, нас пускают во внутрь (аутентифицируют).

Языки программирования адаптировали все математические операции сравнения практически в неизменном виде. Единственное серьезное отличие – операторы равенства и неравенства. В математике для этого используется обычное равно = , но в программировании такое встречается не часто. Во многих языках символ = используется для присваивания значений переменным, поэтому для сравнения взяли == или === .

Список операций сравнения:

  • меньше
  • меньше или равно
  • > больше
  • >= больше или равно
  • === равно
  • !== не равно

Небольшая ремарка: для равенства и неравенства также существуют операторы == и != , которые мы не будем использовать из-за потенциальной опасности. Мы поговорим об этом в будущих уроках.

Логическая операция типа 5 > 4 или $password === $text — это выражение, и его результат — специальное значение true («истина») или false («ложь»). Это новый для нас тип данных — bool. Он содержит всего лишь два этих значения.

Читайте также:  Как стирать ручку с дневника

Наряду со строками (string) и целыми и рациональными числами, тип bool (булев) — это один из примитивных типов данных в PHP.

Попробуем написать примитивную функцию, которая принимает на вход возраст ребенка и определяет, младенец ли он. Младенцами считаются дети до года:

Пользуемся тем фактом, что любая операция — это выражение, поэтому единственной строчкой функции пишем «вернуть то значение, которое получится в результате сравнения $age ».

В зависимости от пришедшего аргумента, сравнение будет либо истинным ( true ), либо ложным ( false ), а return вернёт этот результат.

Вызовем функцию и выведем на экран результат. Для вывода bool нужно использовать var_dump() , а не print_r() :

А теперь проверим ребенка, которому полгода:

Задание

Напишите функцию isPensioner() , которая принимает возраст в качестве единственного аргумента и проверяет, является ли этот возраст пенсионным. Пенсионным считается возраст 60 лет и больше.

Определения

Логический тип (bool) — тип данных с двумя возможными значениями: true (истина) и false (ложь).

Источник

Булев

Это простейший тип. boolean выражает истинность значения. Он может быть либо TRUE , либо FALSE .

Синтаксис

Для указания boolean , используйте константы TRUE или FALSE . Обе они регистронезависимы.

Обычно, некоторый оператор возвращает boolean значение, которое потом передается управляющей конструкции.

// == это оператор, который проверяет
// эквивалентность и возвращает boolean
if ( $action == «show_version» ) <
echo «The version is 1.23» ;
>

// это необязательно.
if ( $show_separators == TRUE ) <
echo » \n» ;
>

// . потому что следующее имеет тот же самый смысл:
if ( $show_separators ) <
echo » \n» ;
>
?>

Преобразование в булев тип

Для явного преобразования в boolean , используйте (bool) или (boolean). Однако, в большинстве случаев приведение типа необязательно, так как значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует boolean аргумент.

При преобразовании в boolean , следующие значения рассматриваются как FALSE :

  • само значение booleanFALSE
  • integer 0 (ноль)
  • float 0.0 (ноль)
  • пустая строка, и строка «0»
  • массив без элементов
  • объект без полей (только для PHP 4)
  • особый тип NULL (включая неустановленные переменные)
  • Объекты SimpleXML, созданные из пустых тегов

Все остальные значения рассматриваются как TRUE (включая любой resource).

-1 рассматривается как TRUE , как и любое другое ненулевое (отрицательное или положительное) число!

Источник

Как вывести bool php

Это простейший тип. Он выражает истинность значения — это может быть либо TRUE, либо FALSE. Булев тип был введен в PHP4.

Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.

= True ; // присвоить $x значение TRUE
?>

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

// == это оператор, который проверяет
// эквивалентность и возвращает булево значение
if ( $action == «показать_версию» ) <
echo «Версия 1.23» ;
>

// это не обязательно.
if ( $show_separators == TRUE ) <
echo » » ;
>

// . потому что вы можете просто написать
if ( $show_separators ) <
echo » » ;
>
?>

Преобразование в тип Boolean

Для преобразования значения в булев тип используйте приведение типа (bool) или (boolean). Однако в большинстве случаев вам нет необходимости использовать приведение типа, поскольку значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует булев аргумент.

При преобразовании в логический тип, следующие значения рассматриваются как FALSE:


Сам булев FALSE

пустая строка и строка «0»

массив с нулевыми элементами

объект с нулевыми переменными-членами

специальный тип NULL (включая неустановленные переменные)

Все остальные значения рассматриваются как TRUE (включая любой ресурс).

Внимание! -1 считается TRUE, как и любое ненулевое (отрицательное или положительное) число!

((bool) «» ); // bool(false)
var_dump ((bool) 1 ); // bool(true)
var_dump ((bool) — 2 ); // bool(true)
var_dump ((bool) «foo» ); // bool(true)
var_dump ((bool) 2.3e5 ); // bool(true)
var_dump ((bool) array( 12 )); // bool(true)
var_dump ((bool) array()); // bool(false)
var_dump ((bool) «false» ); // bool(true)
?>

Работа с бинарными данными (тип boolean)

Cтроки могут содержать любые, в том числе и бинарные данные. Для работы с такими строками иногда
удобно использовать функции pack() и unpack().

pack(string $format [,mixed $args, . ])

Функция pack() упаковывает заданные аргументы в бинарную строку, которая затем и возвращается. Формат параметров, а также их количество, задается при помощи строки $format, которая представляет собой набор однобуквенных спецификаторов форматирования — наподобие тех, которые указываются в sprintf(), но только без знака %. После каждого спецификатора может стоять число, которое отмечает, сколько информации будет обработано данным спецификатором. А именно, для форматов a, A, h и H число задает, какое количество символов будет помещено в бинарную строку из тех, что находятся в очередном параметре-строке при вызове функции (то есть, определяется размер поля для вывода строки). В случае @ оно определяет абсолютную позицию, в которую будут помещены следующие данные. Для всех остальных спецификаторов следующие за ними числа задают количество аргументов, на которые распространяется действие данного формата. Вместо числа можно указать *, в этом случае подразумевается, что спецификатор действует на все оставшиеся данные. Вот полный список спецификаторов формата:

a — строка, свободные места в поле заполняются символом с кодом 0;
A — строка, свободные места заполняются пробелами;
h — шестнадцатеричная строка, младшие разряды в начале;
H — шестнадцатеричная строка, старшие разряды в начале;
c — знаковый байт (символ);
C — беззнаковый байт;
s — знаковое короткое целое (16 битов, порядок байтов определяется архитекту-
рой процессора);
S — беззнаковое короткое целое;
n — беззнаковое целое (16 битов, старшие разряды в конце);
v — беззнаковое целое (16 битов, младшие разряды в конце);
i — знаковое целое (размер и порядок байтов определяется архитектурой);
I— беззнаковое целое;
l — знаковое длинное целое (32 бита, порядок байтов определяется архитекту-
рой);
L — беззнаковое длинное целое;
N — беззнаковое длинное целое (32 бита, старшие разряды в конце);
V — беззнаковое целое (32 бита, младшие разряды в конце);
f — число с плавающей точкой (зависит от архитектуры);
d — число с плавающей точкой двойной точности (зависит от архитектуры);
x — символ с нулевым кодом;
X — возврат назад на 1 байт;
@ — заполнение нулевым кодом до заданной абсолютной позиции.

Немало, не правда ли? Вот пример использования этой функции:

// Целое, целое, все остальное — символы
$bindata = pack(«nvc*», 0x1234, 0x5678, 65, 66);

После выполнения приведенного кода в строке $bindata будет содержаться 6 байтов в такой последовательности: 0x12, 0x34, 0x78, 0x56, 0x41, 0x42 (в шестнадцатеричной системе счисления).

unpack(string $format, string $data)

Функция unpack() выполняет действия, обратные pack() — распаковывает строку $data, пользуясь информацией о формате $format. Возвращает она ассоциативный массив, содержащий элементы распакованных данных. Строка $format задается немного в другом формате, чем в функции pack(), а именно, после каждого спецификатора (или после завершающего его числа) должно «впритык» следовать имя ключа в ассоциативном массиве. Разделяются параметры при помощи символа /. Пример:

В результирующий массив будут записаны элементы с ключами: chars1, chars2 и int. Как видим, если после спецификатора задано число, то к имени ключа будут добавлены номера 1, 2 и т. д., т. е. в массиве появятся несколько ключей, отличающихся суффиксами.
Когда бывают полезны функции pack() и unpack()? Например, вы считали участок GIF-файла, содержащий его размер в пикселах, и хотите преобразовать бинарную 32-битную ячейку памяти в формат, понятный PHP. Или, наоборот, стремитесь работать с файлами с фиксированным размером записи. В этом случае вам и пригодятся рассматриваемые функции. Вообще говоря, функции pack() и unpack() применяются сравнительно редко. Это связано с тем, что в PHP практически все действия, которые могут потребовать работы с бинарными данными (например, анализ файла с рисунком с целью определения его размера), уже реализованы в виде встроенных функций, например, с GIF-картинкой это GetImageSize().

Источник

boolval

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

boolval — Возвращает логическое значение переменной

Описание

Возвращает значение типа bool , релевантное переданному значению value .

Список параметров

Скалярное значение, которое надо привести к типу bool .

Возвращаемые значения

Приведённое к типу bool значение value .

Примеры

Пример #1 Пример использования boolval()

Результат выполнения данного примера:

Смотрите также

  • floatval() — Возвращает значение переменной в виде числа с плавающей точкой
  • intval() — Возвращает целое значение переменной
  • strval() — Возвращает строковое значение переменной
  • settype() — Задаёт тип переменной
  • is_bool() — Проверяет, является ли переменная булевой
  • Преобразование типов

User Contributed Notes 8 notes

To anyone like me who came here looking for a way to turn any value into a 0/1 that will fit into a MySQL boolean (tinyint) field:

= (int) filter_var ( $valToCheck , FILTER_VALIDATE_BOOLEAN );
?>

tinyint will be 0 (zero) for values like string «false», boolean false, int 0

tinyint will be 1 for values like string «true», boolean true, int 1

Useful if you are accepting data that might be from a language like Javascript that sends string «false» for a boolean false.

function is_true($val, $return_null=false) <
$boolval = ( is_string($val) ? filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) : (bool) $val );
return ( $boolval===null && !$return_null ? false : $boolval );
>

is_true(new stdClass); // true
is_true([1,2]); // true
is_true([1]); // true
is_true([0]); // true
is_true(42); // true
is_true(-42); // true
is_true(‘true’); // true
is_true(‘on’) // true
is_true(‘off’) // false
is_true(‘yes’) // true
is_true(‘no’) // false
is_true(‘ja’) // false
is_true(‘nein’) // false
is_true(‘1’); // true
is_true(NULL); // false
is_true(0); // false
is_true(‘false’); // false
is_true(‘string’); // false
is_true(‘0.0’); // false
is_true(‘4.2’); // false
is_true(‘0’); // false
is_true(»); // false
is_true([]); // false

I believe that the double negation !! can perform the same task with the same result if your PHP is not up2date

Источник

is_bool

(PHP 4, PHP 5, PHP 7, PHP 8)

is_bool — Проверяет, является ли переменная булевой

Описание

Проверяет, является ли данная переменная булевой.

Список параметров

Возвращаемые значения

Возвращает true , если value является переменной типа bool , или false в противном случае.

Примеры

Пример #1 Пример использования is_bool()

// Так как $a является булевой переменной, функция вернёт true
if ( is_bool ( $a ) === true ) <
echo «Да, это булевая переменная» ;
>

// Так как $b не является булевой переменной, функция вернёт false
if ( is_bool ( $b ) === false ) <
echo «Нет, это не булевая переменная» ;
>
?>

Смотрите также

  • is_float() — Проверяет, является ли переменная числом с плавающей точкой
  • is_int() — Проверяет, является ли переменная целым числом
  • is_string() — Проверяет, является ли переменная строкой
  • is_object() — Проверяет, является ли переменная объектом
  • is_array() — Определяет, является ли переменная массивом

User Contributed Notes 3 notes

It should be stated that this function returns true if the _type_ of it’s argument is boolean. It does not convert or coerce the value to a boolean type, not sure why so many comments focus on how to do this.
However, if you arrived here looking for a solution to convert a value to a boolean type, use this:

The function Michael Smith published doesn’t do the work as it should.

To check if a variable is boolean is one thing, to evaluate if the value of a variable represents a boolean condition (true or false) is another.

Here a simple function that checks the status of the received variable in regards to boolean equivalencies (case insensitive).

/**
* Check «Booleanic» Conditions 🙂
*
* @param [mixed] $variable Can be anything (string, bol, integer, etc.)
* @return [boolean] Returns TRUE for «1», «true», «on» and «yes»
* Returns FALSE for «0», «false», «off» and «no»
* Returns NULL otherwise.
*/
function is_enabled ( $variable )
<
if (!isset( $variable )) return null ;
return filter_var ( $variable , FILTER_VALIDATE_BOOLEAN , FILTER_NULL_ON_FAILURE );
>
?>

Of course, it is a simplistic approach, but for the majority of cases it will do the job right.

And, just to put thing in the right perspective, here’s a real function that does what Phill disclosed:

/**
* Convert $variable to boolean (adapted from Phill answer)
*
* @param [mixed] $variable Can be anything
* @return [boolean] Returns the booelan equivalent to $variable based on Zend Enegine interpretation
*/
function to_bool ( $variable )
<
return (bool) $variable ;
>
?>

I hope it helps someone. Happy coding.

The function in the last comment also converts the string ‘false’ to a true boolean. Here’s a function that does what I think was intended:

function toBool ( $var ) <
if (! is_string ( $var )) return (bool) $var ;
switch ( strtolower ( $var )) <
case ‘1’ :
case ‘true’ :
case ‘on’ :
case ‘yes’ :
case ‘y’ :
return true ;
default:
return false ;
>
>

Источник

Оцените статью