全局变量不起作用(在一个类中)

时间:2015-11-29 08:11:50

标签: php oop

我班上有三种方法。一个打印内容。其他流程形成,第三个流程返回错误。在处理表单的方法中,我有全局变量存储错误。但是,当我想在返回错误的方法中使用它时,它根本就没有看到它。

错误方法:

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时,该方法根本不会返回任何内容。

2 个答案:

答案 0 :(得分:1)

更好 - 将$error_messages添加到SESSION:

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

在其他地方检查我们是否有错误消息:

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

答案 1 :(得分:0)

因为错误消息没有任何内容

$error_message doesn't have something to show
相关问题