Artur3194
@Artur3194

Не корректная работа функции сравнения строк?

Сделал функцию сравнения двух строк с дальнейшей отметкой если строки не равны.
function checkFailureMasterSumm($masterSumm, $controlSumm){
	if(!empty($masterSumm) && !empty($controlSumm)){
		if(strcasecmp($masterSumm, $controlSumm)){
			return 'master_failure_summ';
		}
	}
}

Работает вроде нормально. Но если передать в одной строке - 0, то всё ломается.
6040e8d2d8bd1380903560.png
Где я туплю?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Ваша проблема в сравнении:
if(!empty($masterSumm) && !empty($controlSumm)){

Согласно документации:
Возвращает false, если var существует и содержит непустое ненулевое значение или строку false, смотрите Преобразование в булев тип. В противном случае возвращает true.


В любом случае, если я правильно понимаю переменные $masterSumm, $controlSumm содержат числа. Если так то и сравнивать их следует как числа.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
empty(0) === true
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы