Подтвердить что ты не робот

Преобразование boolean в целочисленное значение php

Есть ли встроенная функция для PHP, которая примет логическое значение и вернет свой целочисленный эквивалент? 0 для FALSE, 1 для TRUE? Конечно, вы можете легко создать функцию для этого, я просто спрашиваю, есть ли встроенная функция внутри PHP. Я уже пробовал intval() и отбрасывал его на (int), но они не работали, они возвращают 0 в обоих случаях TRUE и FALSE.

Изменить: проблема заключалась в том, что он действительно не был логическим, это была строка "false", "true", php не обнаружил сообщение jquery о том, что он прошел логическое. проблема решена, спасибо!

4b9b3361

Ответ 2

Просто добавьте "+" перед вашей переменной следующим образом:

$myBool = true; 

var_dump(+$myBool);

ouputs: int(1);

Ответ 3

Если вы получаете свою ценность от JSON I.E. Через AJAX POST значение будет входить как строка (как вы уже нашли). Путь к этому заключается в сравнении строки true/false, а затем отбрасывает bool на int

$requestBool = $_REQUEST['bool_value']; //This is 'true' or 'false'

$myInt = (int)($requestBool === 'true');
echo $myInt;

//returns: 0 or 1

Ответ 4

Вы можете сделать несколько отливок за один раз:

$isTest = 'true';

(int)(bool)$isTest

echo $isTest; // this outputs 1

Ответ 5

echo (int)true;
echo '<br>';
echo (int)false;
echo '<br>';
echo intval(true);
echo '<br>';
echo intval(false);
echo '<br>';
echo true + true;

Ответ 6

Если вы не уверены в типе данных, см. пример ниже, он работает с строками, целыми числами и булерами.

<?php

$options = [ TRUE, FALSE, 'true', 'false', 1, 0, '1', '0', 'on', 'off', 'yes', 'no' ];

foreach ( $options as $option ) {
    $bool = filter_var( $option, FILTER_VALIDATE_BOOLEAN ); // TRUE or FALSE
    print (int) $bool . ' '; // 1 or 0
} 
// Outputs: 1 0 1 0 1 0 1 0 1 0 1 0 

?>

filter_var ($ var, FILTER_VALIDATE_BOOLEAN) вернет bool (true) или bool (false), а затем просто будет отлит как целое.

filter_var()

(PHP 5 >= 5.2.0, PHP 7)

filter_var - Фильтрует переменную с заданным фильтром

Ответ 7

Использовать тип casting (bool):

var_dump((bool) 1);         // bool(true)
var_dump((bool) 0);         // bool(false)