我想用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'實例化它,並在實例變量上使用' - >'。 –
感謝您的評論。我確實聲明它是靜態的,但忘了提及它。 –