Beim Codieren mit isset
erhalte ich einen schwerwiegenden Fehler. Ich habe stackoverflow gesucht, aber die Ergebnisse sind nicht zufriedenstellend.
Ich bekomme
Schwerwiegender Fehler: isset () kann nicht für das Ergebnis eines Ausdrucks verwendet werden (Sie können stattdessen "null! == expression" verwenden)
Meine Codes sind
if (!isset( $size || $color )) {
$style = '';
}else{
$style = 'font-size : ' . $size . ';color:' . $color;
}
Wie in den Kommentaren (und der Fehlermeldung) erwähnt, können Sie das Ergebnis eines Ausdrucks nicht an isset
übergeben.
Sie können mehrere isset-Aufrufe verwenden oder die Logik Ihres if/else-Blocks umkehren und mehrere Parameter an isset übergeben, was meiner Meinung nach die sauberste Lösung ist:
//true if both are set
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}else{
$style = '';
}
Sie können dies noch ein wenig bereinigen, indem Sie zuerst den Standardwert festlegen. Auf diese Weise müssen Sie keinen anderen Abschnitt verwenden:
$style = '';
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}
Sie können sogar eine Dreiergruppe verwenden, obwohl einige Leute es schwerer zu lesen finden:
$style = isset($size, $color) ? 'font-size : ' . $size . ';color:' . $color : '';
sie sollten diesen Weg verwenden
if (!isset( $size ) || !isset( $color )) {
Ihr Ausdruck liefert immer entweder true oder false => Theoretisch gibt isset immer true zurück, also PHP dies nicht zulassen
Veränderung
if (!isset( $size || $color )) {
Zu
if (!isset($size) || !isset($color)) {