Ich fang mal mit der letzten Frage an:
Zitat:
Zitat von thommy1972de
Sollte ich das lassen und lieber Fußball spielen gehen ??
|
Ja.
Anderenfalls wäre es auch hilfreich, wenn du deine Fertigkeiten der deutschen Sprache etwas ausbauen würdest, speziell im Bereich von Groß- und Kleinschreibung.
Zitat:
Zitat von thommy1972de
Warum geht das nicht?
|
Weil du die Funktionsweise des
"ternären" Operators nicht verstanden hast. Der ist aus Prinzip auf
Expressions ("Ausdrücke") beschränkt und tut nicht mit Statements ("Anweisungen"). Im PHP-Wunderland ist
echo ein Statement, genauer gesagt: ein Sprachkonstrukt ("language construct").
(Auch wenn die Online-Dokumentation echo verwirrenderweise unter der URL "function.echo.php" führt).
Du kannst daher ?: innerhalb eines Echo-Statements verwenden, aber nicht umgekehrt. Und in der Aussage steckt auch schon die Lösung deines Teil- Problems:
PHP-Code:
echo $bedingung
? $langer_text_den_niemand_lesen_wird
: ''; // einfach ein Leer-String
Auf dein konkretes Beispiel angewandt:
PHP-Code:
echo strlen($row_mail['dateiname']) >= 50
? '<br/><div id="clicking" style="float:right"><button>↓ Klick ↓</button></div>'
: '';
Falls dir das nicht gefällt, solltest du dich mit
print() und seiner Familie (
printf(),
vprintf(),
sprint(),
sprintf(),
vsprintf(), ...) bekanntmachen. Die gelten in PHP als Funktionen, sind damit Expressions, und können in ?:-Konstrukte eingebaut werden:
PHP-Code:
strlen($row_mail['dateiname']) >= 50
? print('<br/><div id="clicking" style="float:right"><button>↓ Klick ↓</button></div>')
: null; // tut gar nichts
--
Falls das alles zu unverständlich war, hilft vielleicht eine benutzerdefinierte Funktion weiter, die prinzipiell das Gleiche macht wie der Operator:
PHP-Code:
function tOpAlsFunktion(
$bedingung, // das, was vor dem ? steht
$falls, // das was danach, aber vor dem : steht
$fallsNicht // das was nach dem : steht
) {
if ($bedingung) {
return $falls;
}
else {
return $fallsNicht;
}
}
--
Was dich darüberhinaus noch interessieren könnte:
1.) Echo kann mehrere durch Komma getrennte Ausdrücke hintereinander ausgeben.
2.) Man pappt HTML nicht direkt in PHP-Code.
3.) IDs als HTML-Attribute sollten Datei-weit einmalig vergeben werden. Mir deucht, dein id="clicking" sollte eher ein class="clicking" werden.
4.) Und schließlich Grundsätzliches:
Zitat:
Zitat von thommy1972de
Ich wollte heute mal Anfangen alle if then else Abfragen auf die Kurzform (Ternär) umzustellen.
|
Warum? Wenn du die Funktionsweise eines if-(elseif-)else-Statements besser verstehst, dann bleib dabei. ?: kann auch nicht mehr. Dafür hat es mehr eingebaute Fallstricke.