我班上有三种方法。一个打印内容。其他流程形成,第三个流程返回错误。在处理表单的方法中,我有全局变量存储错误。但是,当我想在返回错误的方法中使用它时,它根本就没有看到它。
错误方法:
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
时,该方法根本不会返回任何内容。
答案 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