php строку в boolean

Как преобразовать строку в boolean php

Строки всегда оценивают значение boolean true, если у них нет значения, которое считается «пустым» PHP (взято из документации для empty ):

Если вам нужно задать логическое значение на основе текстового значения строки, вам нужно будет проверить наличие или иное значение этого значения.

EDIT: приведенный выше код предназначен для ясности понимания. При фактическом использовании следующий код может быть более уместным:

Этот метод был отправлен @lauthiamkok в комментариях. Я отправляю его здесь как ответ, чтобы привлечь к нему больше внимания.

Строка «false» на самом деле считается значением «TRUE» помощью PHP. В документации говорится:

Чтобы явно преобразовать значение в boolean, используйте (bool) или (boolean) cast. Однако в большинстве случаев приведение не требуется, так как значение будет автоматически преобразовано, если для оператора, функции или структуры управления требуется логический аргумент.

См. Также Тип Жонглирование.

При преобразовании в boolean следующие значения считаются FALSE:

сама логическая ЛОЖЬ

целое число 0 (ноль)

пустая строка и строка «0»,

массив с нулевыми элементами

объект с нулевыми переменными-членами (только для PHP 4)

специальный тип NULL (включая неустановленные переменные)

Объекты SimpleXML, созданные из пустых тегов

Каждое другое значение считается TRUE (включая любой ресурс).

поэтому, если вы это сделаете:

У меня была аналогичная проблема, когда я сделал что-то вроде

Так как мой bool был превращен в укус json.

Чтобы преодолеть это, вы можете декодировать строку с помощью json_decode (). 😉

(обычно это должно работать с значениями bool, преобразованными в строку и отправленными на сервер также другими способами, кроме использования json)

Пожалуйста, отметьте в качестве ответа, если вы найдете это полезным, спасибо и пожелаете вам много солнца, ciao

вы можете использовать json_decode для декодирования того, что boolean

проще всего это сделать:

Выполняя это так, вы можете выполнить цикл «true», «TRUE», «false» или «FALSE» и получить значение строки в логическом виде.

Другие ответы более усложняют ситуацию. Этот вопрос – просто логический вопрос. Просто верьте свое утверждение.

Теперь ваш ответ будет либо

Вы также можете использовать метод settype!

Я делаю это таким образом, чтобы на любой логической строке строка «false» на логическую FALSE выполняла бы регистр без учета регистра, но будет вести себя с использованием обычных правил кастомизации php для всех остальных строк. Я думаю, что это лучший способ предотвратить неожиданное поведение.

Расширяя его ответ, я бы использовал:

Если ваша «логическая» переменная поступает из другого источника, вы можете использовать filter_var() filter.

strval сделает это и многое другое.

Я запутался в атрибутах shortcode wordpress, я решил написать пользовательскую функцию для обработки всех возможностей. может быть, это полезно для кого-то:

Простым способом является проверка массива значений, которые вы считаете истинными.

Вы должны иметь возможность использовать boolean using (bool), но я не уверен, не проверяя, работает ли это в строках «true» и «false».

Это может стоить популярности, хотя

Стоит знать, что следующее будет оцениваться логическим False при вводе внутри

Все остальные будут оцениваться как истинные.

Источник

PHP: Приведение типов

Приведение типа — это преобразование значения одного типа в значение другого типа.

Есть два вида приведения типов:

Неявное приведение типа выполняется интерпретатором автоматически, без непосредственного участия программиста. Например, значение будет автоматически преобразовано, если оператор ожидает, числовые операнды:

Чтобы выполнить явное приведение, нужно указать в круглых скобках имя требуемого типа непосредственно перед приводимым значением или переменной:

Запись имени типа в круглых скобках называется оператором приведения типа. Допускаются следующие операторы приведения типов:

Приведение к целому числу

Строки преобразуются по следующим правилам:

Для других типов поведение преобразования в integer не определено. Поэтому не нужно полагаться на любое наблюдаемое поведение, так как оно может измениться без предупреждения.

Приведение к числу с плавающей точкой

Строки преобразуются по следующим правилам:

Приведение к булеву типу

Следующие значения в результате преобразования дают значение FALSE :

Приведение к строке

Булево значение TRUE преобразуется в строку «1», а значение FALSE преобразуется в «» (пустую строку):

Целое число или число с плавающей точкой преобразуется в строку, состоящую из цифр числа:

Массивы всегда преобразуются в строку «Array» :

NULL всегда преобразуется в пустую строку:

Для преобразования объекта в строку, объект должен иметь метод __toString() :

Приведение к NULL

Приведение к типу NULL не удаляет переменную и её значение, а лишь возвращает значение типа NULL :

Источник

Как конвертировать string в логический php

но он должен быть!—2—>.

18 ответов

строки всегда оцениваются как boolean true, если они не имеют значения, которое считается «пустым» PHP (взято из документация empty ):

Если вам нужно установить логическое значение на основе текстового значения строки, вам нужно будет проверить наличие или иначе этого значения.

EDIT: приведенный выше код предназначен для ясность понимания. При фактическом использовании следующий код может быть более подходящим:

этот метод был опубликован @lauthiamkok в комментариях. Я размещаю его здесь в качестве ответа, чтобы привлечь к нему больше внимания.

в зависимости от ваших потребностей, вы должны рассмотреть возможность использования filter_var() С FILTER_VALIDATE_BOOLEAN флаг.

Строка «false» фактически считается «TRUE» значение по PHP. В документации говорится:

чтобы явно преобразовать значение в логическое, используйте (bool) или (boolean) забросы. Однако в большинстве случаев приведение не требуется, так как значение будет автоматически преобразован если оператор, функция или управление структура требует логического аргумента.

см. Также передергивания типа.

при преобразовании в boolean, следующие значения считаются ложными:

сам логический FALSE

целое число 0 (ноль)

пустая строка и строка «0»

массив с нулевыми элементами

объект с нулевыми переменными-членами (только PHP 4)

специальный тип NULL (включая unset переменные)

объекты SimpleXML, созданные из пустых тегов

каждое другое значение считается истинным (включая любой ресурс).

в приведенном выше коде мое логическое значение было преобразовано в строку JSON.

чтобы преодолеть это, вы можете декодировать строку с помощью json_decode() :

(обычно это должно работать с логическими значениями, преобразованными в строку и отправленными на сервер также другими средствами, т. е., Кроме использования JSON.)

вы можете использовать json_decode для декодирования этого логического

проще всего сделать это так:

делая это таким образом, вы можете выполнить цикл через ряд «true», «TRUE», «false» или «FALSE» и получить строковое значение в логическое.

другие ответы более усложняя вещи. Этот вопрос просто логика вопрос. Просто сделай свое заявление правильно.

теперь ваш ответ будет либо

вы также можете использовать метод settype!

Я делаю это таким образом, чтобы привести любую нечувствительную к регистру версию строки «false» к логическому FALSE, но будет вести себя с использованием обычных правил литья php для всех других строк. Я думаю, это лучший способ предотвратить неожиданное поведение.

расширяя свой ответ, я бы использовал:

если ваша переменная «boolean» происходит из другого источника, вы можете использовать filter_var() функции фильтра.

можно использовать boolval($strValue)

strval сделает это и многое другое.

Я запутался с атрибутами шорткода wordpress, я решил написать пользовательскую функцию для обработки всех возможностей. может быть, это полезно для кого-то:

простой способ-проверить массив значений, которые вы считаете истинными.

вы должны иметь возможность привести к логическому использованию (bool), но я не уверен, не проверяя, работает ли это на строках «true» и «false».

Это может стоить поп, хотя

стоит знать, что следующее будет оценивать логическое значение False при вводе внутрь

Источник

Php строку в boolean

Casting objects to arrays is a pain. Example:

$test = new MyClass ();
echo ‘

/*
Array
(
[MyClasspriv] => priv_value
[*prot] => prot_value
[pub] => pub_value
[MyClasspriv] => second_pub_value
)
*/

?>

Yes, that looks like an array with two keys with the same name and it looks like the protected field was prepended with an asterisk. But that’s not true:

/*
MyClasspriv (13) => priv_value
0 77 121 67 108 97 115 115 0 112 114 105 118
*prot (7) => prot_value
0 42 0 112 114 111 116
pub (3) => pub_value
112 117 98
MyClasspriv (11) => second_pub_value
77 121 67 108 97 115 115 112 114 105 118
*/

?>

The char codes show that the protected keys are prepended with ‘\0*\0’ and private keys are prepended with ‘\0’.__CLASS__.’\0′ so be careful when playing around with this.

The object casting methods presented here do not take into account the class hierarchy of the class you’re trying to cast your object into.

Value of uninitialized variable of different data types.

settype($a,’bool’);
var_dump($a); //boolean false

settype($b,’string’);
var_dump($b); //string » (length=0)

settype($c,’array’);
var_dump($c); //array (size=0) empty

settype($d,’int’);
var_dump($d); //int 0

settype($e,’float’);
var_dump($e); //float 0

You REALLY must be aware what you are doing, when you cast a lot in your code. For example, you can accidentaly change FALSE to TRUE (probably not in one line, like here):

if(TRUE === (boolean) (array) (int) FALSE) <
kaboom();
>

namaroulis stated «I found it tricky to check if a posted value was an integer»; to test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric():

in response to bhsmither at gmail.com

It raises a warning because of the bad enquoted variable

It seems (unset) is pretty useless. But for people who like to make their code really compact (and probably unreadable). You can use it to use an variable and unset it on the same line:

?>

With the unset cast:

?>

Hoorah, we lost another line!

Checking for strings to be integers?
How about if a string is a float?

/* When checking for floats, we assume the possibility of no decimals needed. If you MUST require decimals (forcing the user to type 7.0 for example) replace the sequence:
9+(\.6+)?
with
5+\.6+
*/

Источник

Parsing a string into a boolean value in PHP

Today I was playing with PHP, and I discovered that the string values «true» and «false» are not correctly parsed to boolean in a condition, for example considering the following function:

It only seems to work with «1» and «0» values:

Is there a native function in PHP to parse «true» and «false» strings into boolean?

php строку в boolean. Смотреть фото php строку в boolean. Смотреть картинку php строку в boolean. Картинка про php строку в boolean. Фото php строку в boolean

8 Answers 8

There is a native PHP method of doing this which uses PHP’s filter_var method:

Returns TRUE for «1», «true», «on» and «yes». Returns FALSE otherwise.

If FILTER_NULL_ON_FAILURE is set, FALSE is returned only for «0», «false», «off», «no», and «», and NULL is returned for all non-boolean values.

php строку в boolean. Смотреть фото php строку в boolean. Смотреть картинку php строку в boolean. Картинка про php строку в boolean. Фото php строку в boolean

The reason is that all strings evaluate to true when converting them to boolean, except «0» and «» (empty string).

The following function will do exactly what you want: it behaves exactly like PHP, but will also evaluates the string «false» as false :

When converting to boolean, the following values are considered FALSE:

Every other value is considered TRUE (including any resource).

php строку в boolean. Смотреть фото php строку в boolean. Смотреть картинку php строку в boolean. Картинка про php строку в boolean. Фото php строку в boolean

In PHP only «0» or the empty string coerce to false; every other non-empty string coerces to true. From the manual:

When converting to boolean, the following values are considered FALSE :

On a side note that could easily be condensed to

I recently needed a «loose» boolean conversion function to handle strings like the ones you’re asking about (among other things). I found a few different approaches and came up with a big set of test data to run through them. Nothing quite fit my needs so I wrote my own:

You can see the behavior for the test data I used as well as the results for several other functions here. It’s kind of hard to skim the results from that little iframe, so you can view the script output in a full page, instead (that URL is undocumented so this might not work forever). In case those links die some day, I put the code up on pastebin as well.

The line between what «ought to be true» and what oughtn’t is pretty arbitrary; the data I used is categorized based on my needs and aesthetic preferences, yours may differ.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *