PHP echo: Div in eigener Klasse oder nicht?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wie wärs mit einer Funktion wie ...:

function createelement($tagname,$id,$class,$text){
    return "<".$tagname."id='"$id."' class='".$class."' >".$text."</".$tagname.">";
}

echo createelement("div",$a,$b,$c);

Du kannst ja auch deine Vorgegebenen werte über das switch statement abfangen in der funktion, sodass du nur valide tags bekommst ...

Selbstverständlich wäre die perfekte variante dafür eine klasse zu schreiben ...

Danke für den Code, aber welche Version würdest du bevorzugen?

Übrigens mein Code für ein normales Div-Element:

// Function for creating a String like <div class="" id="">something</div>
function div(){     // div([class, [id] ], inner);
    $class = '';    // the classes of the div
    $id = '';       // the id's of the div
    $inner = '';    // the text between <div> and </div>
    switch(func_num_args()){
        case 0:     // div();
            break;
        case 1:     // div(inner);
            $inner = func_get_arg(0);
            return '<div>'.$inner.'</div>';
            break;
        case 2:     // div(class, inner);
            $class = func_get_arg(0);
            $inner = func_get_arg(1);
            return '<div class="'.$class.'">'.$inner.'</div>';
            break;
        case 3:     // div(class, id, inner);
            $class = func_get_arg(0);
            $id = func_get_arg(1);
            $inner = func_get_arg(2);
            break;
        default:    // div(class, id, inner, ...);
            $class = func_get_arg(0);
            $id = func_get_arg(1);
            $inner = func_get_arg(2);
            break;
    }
    return '<div class="'.$class.' " id="'.$id.'">'.$inner.'</div>';
}
0
@SoerenKlein98

Hmm schwer zu sagen, wenn es mit Funktionen leicher und übersichtlicher ist, dann würde ich dir die funktion raten.

1
@SoerenKlein98

Wirkt mir ein wenig überladen, etwas in dieser Art wäre imo etwas übersichtlicher:

function div($inner, $id = '', $class = '') {
    if (!empty($id)) {
        $id = ' id="' . $id . '"';
    }
    if (!empty($class)) {
        $class = ' class="' . $class . '"';
    }
    return '<div' . $id . $class . '>' . $inner . '</div>';
}
0

Frage ist immer wie und weshalb man sowas macht. Wenn es um eine komplexe Helperklasse geht, dann ist das eine Möglichkeit und die 2te Version wäre wesentlich besser, da man die zurückgegebenen Inhalte noch leicht verändern kann oder auch statt einfach auszugeben anders verwerten könnte.

Fürs reine Templating sollte der Code eher als reiner HTML genutzt werden und nur die Variablen via PHP ausgegeben werden, sprich für sowas wie ein Div lohnt so eine Klasse nicht und schränkt eher ein. Sinnvoll mag sie sein für Sachen wie Dropdownboxen, Checkboxen, Radiobuttons, verschiedene Header, den Metatags und ggf. Listen.

und wenn das div noch eine table enthält und die tabellenzellen weitere tables und diese input boxen ...

HTML lebt von der verschachtelung und ist daher eh schwer zu lesen und entspr. fehler schwer zu finden.

wiewillst du das mit solchen funktionen bewerkstelligen?

das echo macht es zwar nicht schöner, ist aber das geringere übel.

übrigens: deine echo kann man auch übersichtlicher gestalten:

echo "<div class='$a' id='$b'>$c</div>";    

Was möchtest Du wissen?