进入面向对象的PHP

时间:2014-10-09 19:21:35

标签: php oop

我正在尝试使用面向对象的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&auml;nge: ' . $this->laenge . '<br>';
    echo 'Feldname: ' . $this->feldname. '<br>';
    echo 'Gr&ouml;&szlig;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';
    }

?>

0 个答案:

没有答案