Я предполагаю, что вы находитесь внутри функции, и в этом случае она выполняет то, что вы ожидаете, хотя несколько return
операторов внутри функции могут привести к путанице и недостаточной читаемости. (Видимо, я был не прав.)
Вместо этого я предпочитаю, чтобы все условные блоки (мое описание кода между в if
блоке {...}
) содержали соответствующий код, то есть записывали условную проверку таким образом, чтобы общее условие оценивается в true
, когда требуется дополнительная обработка (подпоток):
if ($hostNameInfo != $hostNameInput || $hostAddressInfo != $hostAddressInput) {
// do stuff, else skip
}
Кроме того, вы можете извлечь условный оператор для улучшения и читабельности и простоты потока управления:
$hostInfoEqualsInput = ($hostNameInfo == $hostNameInput && $hostAddressInfo == $hostAddressInput);
if (!$hostInfoEqualsInput) {
...
}
ОБНОВЛЕНИЕ (на основе обновленного вопроса). Рассмотрим это вместо:
$fieldsAreFilled = (!empty($hostNameInput) && !empty($hostAddressInput));
$hostInfoEqualsInput = ($hostNameInfo == $hostNameInput && $hostAddressInfo == $hostAddressInput);
if ($fieldsAreFilled && !$hostInfoEqualsInput) {
...
}
ЭРГО
Минимизируйте частоту ветвлений и избегайте пустых блоков, написав условия, которые вы хотите выполнить, а не все исключения, которые вы хотите игнорировать (субъективно).