Функция сравнения просто моделирует оператор «меньше». Посмотрите, как работает оператор <
для таких примитивных типов, как int
:
int a = 1, b = 2; a < b == true a is less than b
int a = 2, b = 1; a < b == false a is not less than b, because a is greater than b
int a = 1, b = 1; a < b == false a is not less than b, because a equals b
Возврат true
означает, что вы хотите a
упорядочиваться до b
. Поэтому верните false
, если это не так, потому что вы хотите, чтобы b
заказывалось до a
, или потому, что их порядок не имеет значения.
Если вы вернете true
, когда аргументы равны, то вы говорите, что хотите a
прийти перед b
, и вы хотите b
прийти перед a
, что является противоречием.
Если вы хотите избежать оператора if:
filter_var('true', FILTER_VALIDATE_BOOLEAN);
//bool(true)
filter_var('false', FILTER_VALIDATE_BOOLEAN);
//bool(false)
Он будет передан как строка. Хотя вы можете преобразовать его с помощью bool cast, рекомендуется не делать этого в некоторых случаях.
Вам было бы лучше делать, если myVar == «True»
Будьте осторожны :
>>> bool("foo")
True
>>> bool("")
False
Пустые строки оцениваются как False, но все остальное оценивает значение True. Поэтому это не должно использоваться для каких-либо анализов.