Почему === быстрее, чем == в PHP?

Почему === быстрее, чем == в PHP?

165
задан Rob W 27 December 2011 в 18:43
поделиться

7 ответов

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

195
ответ дан 23 November 2019 в 21:09
поделиться

=== не выполняет приведение типов, поэтому 0 == '0' оценивается как истина , но 0 === '0' - до false .

54
ответ дан 23 November 2019 в 21:09
поделиться

Во-первых, === проверяет, являются ли два аргумента одного типа - поэтому число 1 и строка '1' не проходят проверку типа до того, как будут выполнены какие-либо сравнения. С другой стороны, == сначала не проверяет тип, а преобразует оба аргумента к одному типу, а затем выполняет сравнение.

Поэтому === быстрее проверяет условие отказа

25
ответ дан 23 November 2019 в 21:09
поделиться

Знак == вызывает большие накладные расходы на преобразование типов перед сравнением. === сначала проверяет тип, затем продолжает работу без преобразования типа.

4
ответ дан 23 November 2019 в 21:09
поделиться

Поскольку === не требует принуждения операндов к одному и тому же типу перед их сравнением.

Я сомневаюсь, что разница в скорости очень большая. В нормальных условиях вы должны использовать тот оператор, который имеет больше смысла.

4
ответ дан 23 November 2019 в 21:09
поделиться

Я не знаю, значительно ли это быстрее, но === в большинстве языков является прямым сравнением типов, в то время как == будет пытаться выполнить коэрцицию типов, если это необходимо/возможно, чтобы получить совпадение.

7
ответ дан 23 November 2019 в 21:09
поделиться

В заключение === работает быстрее, потому что не преобразует тип данных, чтобы увидеть, имеют ли две переменные одинаковое значение, но когда вам нужно увидеть, имеют ли две переменные одинаковое значение, вы будете использовать ==, если не определите, какой тип является переменными , или === если важен еще и тип переменных.

2
ответ дан 23 November 2019 в 21:09
поделиться
Другие вопросы по тегам:

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