Есть ли встроенная функция для PHP, которая примет логическое значение и вернет свой целочисленный эквивалент? 0 для FALSE, 1 для TRUE? Конечно, вы можете легко создать функцию для этого, я просто спрашиваю, есть ли встроенная функция внутри PHP. Я уже пробовал intval()
и отбрасывал его (int)
но они не работали, они возвращают 0 в обоих случаях TRUE и FALSE.
Edit: проблема была в том, что он не был действительно логическим, это была строка «false», «true», php не обнаружил пост jquery, что он прошел логическое. проблема решена, спасибо!
http://www.php.net/manual/en/language.types.integer.php
Обычно просто $myInt = (int)$myBoolean
должен работать, можете ли вы показать нам свой код в противном случае?
Просто добавьте «+» перед вашей переменной следующим образом:
$myBool = true; var_dump(+$myBool); ouputs: int(1);
Если вы получаете свое значение из JSON IE через 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
Вы можете сделать несколько отливок за один раз:
$isTest = 'true'; (int)(bool)$isTest echo $isTest; // this outputs 1
echo (int)true; echo '<br>'; echo (int)false; echo '<br>'; echo intval(true); echo '<br>'; echo intval(false); echo '<br>'; echo true + true;
Если вы не уверены в типе данных, см. Пример ниже, он работает с строками, целыми числами и булевыми.
<?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), а затем просто будет отлит как integer.
filter_var ()
(PHP 5> = 5.2.0, PHP 7)
filter_var – Фильтрует переменную с заданным фильтром
Использовать литье типа (bool):
var_dump((bool) 1); // bool(true) var_dump((bool) 0); // bool(false)