2015-11-29 77 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_errors方法使用return 'test string'它打印「測試字符串'在正確的地方正確。但是,當我使用return $error_messages該方法根本不返回任何內容。

回答

1

更好 - 添加$error_messages到SESSION:

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

其他地方檢查,如果我們有錯誤信息:

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

將這項工作如果我需要打印多個錯誤? – Kunok

+0

@Kuno你可以有多個SESSION變量,或者你可以有數組SESSION變量(存儲多個值)http://www.w3schools.com/php/php_sessions.asp – pavlovich

0

因爲錯誤信息沒有什麼

$error_message doesn't have something to show 
相關問題