Довольно простой вопрос, но не уверен в ответе. Могу ли я передать логическую переменную через get? Например:
http://example.com/foo.php?myVar=true
то у меня есть
$hopefullyBool = $_GET['myVar'];
Является ли $hopefullyBool логическим или строковым? Моя гипотеза заключается в том, что это строка, но кто-то может мне сообщить? благодаря
Все параметры GET будут содержать строку в PHP. Чтобы получить тип boolean pass как то, что оценивается как true или false как 0 или 1 , используйте:
$hopefullyBool = (bool)$_GET['myVar'];
Если вы хотите передать строку true или false тогда:
$hopefullyBool = $_GET['myVar'] == 'true' ? true : false;
Он будет передан как строка. Хотя вы можете преобразовать его с помощью bool cast, рекомендуется не делать этого в некоторых случаях.
Вы бы лучше сделали, если myVar == "True"
Будь осторожен:
>>> bool("foo") True >>> bool("") False
Пустые строки оцениваются в False, но все остальное оценивает значение True. Поэтому это не должно использоваться для каких-либо разборов.
Если вы хотите избежать утверждения if:
filter_var('true', FILTER_VALIDATE_BOOLEAN); //bool(true) filter_var('false', FILTER_VALIDATE_BOOLEAN); //bool(false)