2013-11-28 3 views
1

Для проверки соответствия одной строки другой другой, я использовал двойной знак равенства до сих пор. напримерPHP, если один или два равны

if ($string1==$string2) 

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

$string1 = 10; 
$string2 = 10; 

вопросы есть, я делаю один равный или двойной равно убедитесь, что две строки совпадают на 100% не более не менее как раз точные

так что я делать:

if ($string1==$string2) 

или

if ($string1=$string2) 
+3

Single '=' является __assignment__; double '==' __loose сравнение__ (с приведением типов); triple '===' is __strict compare__ (должны совпадать типы данных) –

ответ

6

Двойной равных (==), вероятно, вы хотите использовать для сравнения. (. Вы можете также использовать тройные равно т.е. === для «строгого» сравнения, так что "2" === 2 будет ложным)

Одиночный знак равенства назначение: он переписывает левую часть, а затем ваше if заявление будет просто эквивалентно проверке значения, которое было назначено (например, значение правой стороны).

Например, это будет печатать It's not zero! с последующим foo = 1 (как и следовало ожидать):

$foo = 1; 
if ($foo == 0) { 
    print("It's zero!"); 
} else { 
    print("It's not zero!"); 
} 
print("foo = " + $foo); 

Но это напечатает It's not zero! с последующим foo = 0 (вероятно, не то, что вы ожидаете):

$foo = 1; 
if ($foo = 0) { 
    print("It's zero!"); 
} else { 
    print("It's not zero!"); 
} 
print("foo = " + $foo); 

Причина этого заключается в том, что во втором случае $foo = 0устанавливает$foo на 0, а затем if оценивается как if($foo). Поскольку 0 является ложным значением, выполняется инструкция else.

3

идентичен оператора, ===, используется, когда вы хотите сравнить значения двух операндов и типов.

, равный Оператор, ==, используется, если вы хотите сравнить два значения. Он будет оцениваться до true, если both values are equivalent (т. Е. 15 == "15" будет true).

Оператор присваивания, =, используется для присвоения значения переменной. Этот оператор не должен использоваться для сравнения значений; для чего это не так.

Теперь, для сравнения строк различными способами, вы можете посмотреть на strcmp family of functions. Они очень полезны для сравнения строк различными способами.

Смежные вопросы