Судя по комментариям, ваше условие оценивается как истинное, прежде чем вы ожидаете этого.Не видя больше вашего кода, это только предположение, но я полагаю, что ваша проблема в том, что вы даете переменной $error
значение по умолчанию / временное значение, когда вы создаете ее, которая не означает ложь.Например:
$error = "default error message, change me later";
// Later...
if ($error) { // This evaluates to true
echo "Error: $error<br/>";
}
Если это так, вы можете проверить документацию PHP по приведению к логическому значению и, возможно, использовать что-то вроде этого (с вкладом ответа Кристиана)):
$error = "0"; // Default error message, change it later
// Later...
if($_SESSION['been_here'] == true)
$error = "This is the real error message.";
// Even later...
if ($error) {
echo "Error: $error<br/>";
}