我想用php验证一个表单。在课堂结构中访问数组
为此我创建了一个类“benutzer”和公共职能“benutzerEintragen”这一类的验证形式:
class benutzer
{
private $username = "";
private $mail = "";
private $mail_check = "";
private $passwort = "";
private $passwort_check = "";
public $error_blank = array();
public $error_notSelected = array();
public $error_notEqual = array();
public function benutzerEintragen() {
$textfields[0] = $this->username;
$textfields[1] = $this->mail;
$textfields[2] = $this->mail_check;
$textfields[3] = $this->passwort;
$textfields[4] = $this->passwort_check;
foreach ($textfields as $string) {
$result = checkFormular::emptyVariable($string);
$error_blank[] = $result;
}
在功能“benutzerEintragen”我充满了变数“的用户名,邮件”和以此类推适当的$ _POST条目(未在上面的代码中显示)。电话
checkFormular::emptyVariable($string)
只是返回“TRUE”,如果该字段未设置或否则为空否则为FALSE。
现在,当我尝试创建此类的新实例时,执行该函数并获得对$ error_blank [0]的访问,该数组为空!
if (($_SERVER['REQUEST_METHOD'] == 'POST')){
$BENUTZER = new benutzer();
$BENUTZER->benutzerEintragen();
echo $BENUTZER->error_blank[0];}
所以最后一行是通知“通知:未定义偏移量:0”。这似乎与阵列结构有关,因为如果我做
echo $BENUTZER->mail;
我得到我在窗体中写的任何输入,这是正确的。当我在phpEd中运行调试器时,foreach循环似乎也做了正确的事情,但似乎数组“error_blank”在执行该函数后被擦除。
任何帮助将不胜感激。提前致谢。
是checkFormular :: emptyVariable声明为静态方法吗?你需要声明为静态的,以便使用'::'来访问它,或者用'new checkFormular'实例化它,并在实例变量上使用' - >'。 –
感谢您的评论。我确实声明它是静态的,但忘了提及它。 –