Rolf B: php: Ternärer Operator gibt immer dasselbe Ergebnis aus

Beitrag lesen

Hallo Rick,

Edit Rolf B: Unsinn ab hier

Was habe ich im ternären Ausdruck falsch gemacht?

https://www.php.net/manual/en/language.operators.precedence.php

. hat höhere Prio als ?: - deswegen lautet deine Bedingung:

"<table class='eingangsRG' width='100%' border='0' cellpadding='4' cellspacing='1'> <thead> <tr> <td class='head" . ($_SESSION[$db_id]['order'] == 'ID'

Nicht ganz das, was Du möchtest.
Edit Rolf B: Unsinn Ende

Ich weiß, dass man … html-code nicht in php notieren sollte.

Ja. Aber hättest Du Dein Wissen angewendet, wäre Dir der Fehler ganz selbstverständlich nicht passiert. Ein monströser Echo wie dieser ist nicht nur für Anfänger ein Enthaarungsmittel (weil Du sie Dir stundenlang gerauft hast).

Gerade wenn man das Feature X lernen möchte, dann sollte man es erstmal isoliert behandeln. Sprich: Das Ergebnis des doppelternären Ausdrucks erstmal in eine Variable zimmern und dann ins HTML einbauen. Also ich hätte das so gemacht. Und ich habe in meinem Leben schon einige Megazeilen Code produziert, glaube ich. Also - Mega wie in Millionen Zeilen. Aber ok, ein paar Megazeilen (wie in "Millionen Zeichen lang" könnten auch dabei gewesen sein)

Dann wäre Dir mutmaßlich auch aufgefallen, dass Du für die td-Klasse ein ' mit einem " gepaart hast.

<?php
...
$cellClass = $_SESSION[$db_id]['order'] == 'ID'
              ? ($_SESSION[$db_id]['ascDESC'] == 'asc' ? ' asc' : ' desc')
              : '';
?>
<table class='eingangsRG' width='100%' border='0' cellpadding='4' cellspacing='1'>
<thead>
<tr>
<td class='head$cellClass">
<?php
...

Der größte Vorteil von ?> ... <?php statt echo "..." ist, dass Du von einem anständigen Editor ein Code-Highlighting des HTML bekommst. Und keine einfarbige Textwurst.

Rolf

--
sumpsi - posui - obstruxi