PHP: Почему преобразованный тип с!! $var вместо (булева) $var?

Оба из них удостоверятся, чем $var является булевым значением, но последний кажется более ясным. Двойной восклицательный знак (!!) короче, чтобы ввести, но менее ясный, и более вероятно вызвать беспорядок. Не говоря уже о трудно для запущения поиска на получить ответы.

Двойной восклицательный знак - что-то, о чем я только услышал в JavaScript, который не имеет булева преобразования типа. Действительно ли нормально видеть, что это использовало в PHP также?

5
задан vaxquis 28 November 2017 в 00:42
поделиться

2 ответа

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

Если вы можете сделать ! , вы можете также использовать его там, где необходимо булевое выражение (while, if, && и т.д.).

.
3
ответ дан 14 December 2019 в 08:52
поделиться
[

]Это действительно в JavaScript, хотя технически не "кастинг", но достигает того же эффекта:[

] [
var booleanValue = Boolean(otherValueType);
] [

]Это эквивалентно:[

] [
var booleanValue = !!otherValueType;
] [

]Я считаю, что это хорошо делать при обработке входящих параметров, чтобы прояснить, что подразумевалось, что значение должно быть булевым. При проверке "правдивости" нет необходимости печатать на PHP или JavaScript. Просто помните, что пустая строка эквивалентна []false[] в PHP и []true[] в JavaScript.[

] [

]Таким образом, чтобы ответить на ваш вопрос, либо хорошо в любом из языков, это просто личный выбор стиля.[

].
4
ответ дан 14 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: