Intereting Posts

Передача логического через PHP GET

Довольно простой вопрос, но не уверен в ответе. Могу ли я передать логическую переменную через 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)