Тестирование на равенство с использованием == и ===

В PHP есть два метода проверки на равенство. В случае ниже, какой метод является правильным?

    settype($var,"integer");
$var = 1;

if ($var == 1)
then return(true);
else
return(false);

if ($var === 1)
then return(true);
else
return(false);

Они оба сравнивают на равенство 1. Однако второе утверждение проверяет, идентичны ли они. 1 — это константа, а $ var — целочисленная переменная, для которой установлено значение 1. Конечно, ($ var == 1) более правильно? Пожалуйста, помогите мне понять, так как ($ var === 1) сравнивает переменную с константой.

-3

Решение

== сравнивает значения переменных на равенство, приведение типов по необходимости. === проверяет, имеют ли две переменные одинаковый тип и имеют ли они одинаковое значение. Например 1 == "1" это правда, но 1 === "1" является false

В вашем примере $ var является переменной целочисленного типа, а 1 — константой целочисленного типа. На самом деле нет разницы типов. Константа не является типом в любом языке, это просто значение, которое является константой (неизменяемой). Константа может иметь тип integer, double, string и т. Д.

Полное объяснение различий доступно в ссылке на руководство по PHP: http://au.php.net/manual/en/language.operators.comparison.php

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]