Zend: неопределенная переменная на странице php - PullRequest
0 голосов
/ 11 июля 2011

У меня есть файл error.php, который можно сильно упростить до:

<?

  if (!isset($error))
    $error = "Unspecified Error";

  echo "Error: $error";

?>

Это не «обычное использование», просто перейти к error.php.Скорее, я бы сделал что-то вроде:

$dbh = mysql_connect($host, $user, $pass);

if (!$dbh)
{
  $error = "Can't connect to MySQL: " . mysql_error();
  include('error.php');
  exit();
}

Тем не менее, если пользователь делает перейдет к error.php, то он просто получит «Ошибка: Ошибка не указана», как ожидалось.

Весь мой код работает, и страница с ошибками отображается и работает точно так, как ожидалось, однако Zend жалуется, что $ error не определена в строке: if (!isset($error)).

Я понимаю свой дизайнкартина ужасна, но я просто собираю что-то быстрое и грязное в этом случае.

Ответы [ 3 ]

1 голос
/ 11 июля 2011

Лучшая идея, создать вместо этого функцию:

function output_error( $error = NULL )
{
    if( !$error ) $error = "Unspecified Error";
    echo "Error: $error";
}

Он имеет преимущество как в устранении проблемы Zend, так и у вас НАМНОГО лучший дизайн. Тогда:

if (!$dbh)
{
  include('error.php');
  output_error( "Can't connect to MySQL: " . mysql_error() );
  exit();
}
0 голосов
/ 11 июля 2011
$dbh = mysql_connect($host, $user, $pass);

if (!$dbh){
  $error = "Can't connect to MySQL: " . mysql_error();
  if(!include('error.php'){
      echo $error;
      exit();
  }
}
0 голосов
/ 11 июля 2011

Попробуйте это: if (!isset(@$error)).

...