我正在尝试使用面向对象的PHP。它有效,但我怀疑它真的是oo; - )
我的问题是我有这个美丽的课程Weintyp
,它创建了一个输入字段。但是,要检查表单是否已发送,我需要检查变量$gesendet_we
。现在,我在班上有这个漂亮的方法,但如果我尝试使用$_GET["$gesendet_we"]
作为变量,我会收到错误,因为它没有设置。我之前通过isset()
检查解决了这个问题,但这似乎是在作弊。我该怎么办?
这是我的课程:
<?php
require_once('config.php');
abstract class AbstrakteFunktionen
{
public function IstLeer($var)
{
$wert = empty($var);
return $wert;
}
}
class Formular extends AbstrakteFunktionen
{
public $gesendet;
public function __construct()
{
$this->gesendet = 0;
}
}
class Objekt extends AbstrakteFunktionen
{
public $anzeigename;
public $laenge;
public $feldname;
public $groesse;
public $idname;
public $tabelle;
public $wert;
public $typ;
public $gesendet;
public function EigenschaftenAusgeben()
{
echo 'Anzeigename: ' . $this->anzeigename . '<br>';
echo 'Länge: ' . $this->laenge . '<br>';
echo 'Feldname: ' . $this->feldname. '<br>';
echo 'Größe: ' . $this->groesse . '<br>';
echo 'IDName: ' . $this->idname . '<br>';
echo 'Tabelle: ' . $this->tabelle . '<br>';
echo 'Wert: ' . $this->wert . '<br>';
echo 'Typ: ' . $this->typ. '<br>';
echo 'Gesendet: ' . $this->gesendet . '<br>';
}
public function FehlerFeldLeer($gesendet) // nur für Pflichtfelder
{
if (isset($gesendet) AND $gesendet = 1)
{echo ' Hinweis: Bitte ' . $this->anzeigename . ' eingeben!';}
}
}
class Weintyp extends Objekt
{
public function __construct()
{
$this->anzeigename = "Weintyp";
$this->laenge = 58;
$this->feldname = $this->anzeigename;
$this->groesse = 100;
$this->idname = $this->feldname . "id";
$this->tabelle = "ktbl_". $this->anzeigename;
$this->typ = "text";
}
public function IstEingabeLeer()
{
$wert = empty($_GET["$this->feldname"]);
return $wert;
}
public function EingabeEinlesen()
{
if ($this->IstEingabeLeer() == FALSE)
{
$this->wert = $_GET["$this->feldname"];
}
}
public function EingabefeldErzeugen()
{
echo '<b>' . $this->anzeigename . '</b> <br> <input size="' . $this->laenge . '" maxlength= "' . $this->groesse . '" type="' . $this->typ .
'" name="' . $this->feldname . '" value="' . $this->wert . '">';
}
function ergebnisAusgeben()
{
return $this->ergebnis;
}
}
?>
这是我的代码:
<?php
// Globale Variablen und Funktionen laden
require_once('functions.php');
require_once('classes.php');
$EingabefeldWeintyp = new Weintyp();
$EingabefeldWeintyp->EigenschaftenAusgeben();
if ($EingabefeldWeintyp->IstEingabeLeer())
{ // Formular erzeugen
echo ' <h2> Weintyp erfassen </h2>
<form>
<div class="clearfix">
<div class="linkspflicht">';
$EingabefeldWeintyp->EingabefeldErzeugen();
if(isset($_GET['gesendet_we']))
{$EingabefeldWeintyp->FehlerFeldLeer($_GET['gesendet_we']);}
echo ' </div>
</div>';
echo ' <input type="hidden" name="gesendet_we" value="1">
<input type="hidden" name="navigation" value="weintyp_erfassen_oo">
<input type="hidden" name="nleiste" value="daten">
<br>
<p> <input type="submit" formaction="index.php" value="Weintyp erfassen" /></p>
</form>';
}
else
{
echo 'Was anderes';
}
?>