2015-11-29 2 views
0

У меня есть три метода в моем классе. Один печатает контент. Другие формы процессов, а третий - ошибки. Внутри метода, который обрабатывает форму, у меня есть глобальная переменная, где хранятся ошибки. Однако, когда я хочу использовать его в методе, который возвращает ошибки, он просто его не видит. МетодГлобальная переменная не работает (в пределах одного класса)

Ошибки:

private function return_errors(){ 
     return $error_messages; 
    } 

Форма методы процесс:

private function process_form(){ 
     if (isset($_POST['submit'])) { 

      # Assign data 
      $username = $_POST['username']; 
      $email = $_POST['email']; 
      $password = $_POST['password']; 
      $confirm_password = $_POST['confirm-password']; 

      # Dialog array 
      global $error_messages; 
      $error_messages = 'test'; 
      ... 

Функция печати:

public function print_content(){ 

      # Process form data 
      $this->process_form(); 

      # output buffering start 
      ob_start(); 

      # print navbar 
      $this->print_navbar(); 

      # declare output buffering content 
      $output = ob_get_contents(); 

      # add more output data 
      $output .= ' alot of string...'.$this->print_dialog().'...more string.'; 
      # end output buffering and return it 
      ob_end_clean(); 
      return $output; 
} 

Так дело в том, если я использую return 'test string' в методе return_errors он печатает ' тестовая строка "в правильном месте. Однако, когда я использую return $error_messages, этот метод ничего не возвращает.

ответ

1

лучше - добавить $error_messages к сеансу:

session_start();  
$_SESSION['error_messages'] = 'test'; 

в другом месте проверить, если у нас есть сообщения об ошибках:

if(!empty($_SESSION['error_messages'])) { 
    $error_messages = $_SESSION['error_messages']; 
    unset($_SESSION['error_messages']); 
} 
+0

это будет работать если мне нужно распечатать несколько ошибок? – Kunok

+0

@Куно у вас может быть несколько переменных SESSION или вы можете иметь переменные SESSION массива (для хранения нескольких значений) http://www.w3schools.com/php/php_sessions.asp – pavlovich

0

потому, что сообщение об ошибке не имеют ничего

$error_message doesn't have something to show 
Смежные вопросы