0
Почему следующие сравнения строк возвращают true?Сравнение строк PHP возвращает true, если они не соответствуют
Я использую Laravel framework 4.2, форма :: select сравнивает значение параметра с помощью этого метода и находит совпадения, которых не должно быть.
public function testStringComparison1()
{
$value = '8000003E-1408739159';
$selected = '8000010E-1434656519';
$b = false;
if ((string) $value == (string) $selected) {
$b = true;
}
$this->assertFalse($b); // this fails, $b == true
}
public function testStringComparison2()
{
$value = '8000008E-1408740949';
$selected = '8000010E-1434656519';
$b = false;
if ((string) $value == (string) $selected) {
$b = true;
}
$this->assertFalse($b); // this fails, $b == true
}
Всегда набирайте жонглирование. Используйте '===' – AbraCadaver
Спасибо за ответ. Чтобы отслеживать и лучше понимать, что «тип» может сравнить PHP, чтобы определить их равными? – user3720435
Это строковые представления поплавков: 'echo (float) $ value; echo (float) $ selected; 'http://php.net/manual/en/language.types.string.php#language.types.string.conversion – AbraCadaver