it-swarm.com.de

Schwerwiegender Fehler: Isset () kann nicht für das Ergebnis eines Ausdrucks verwendet werden

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;   
}
4
Musa Muaz

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 : '';
4
Steve

sie sollten diesen Weg verwenden 

if  (!isset( $size ) || !isset( $color ))  {
4
scaisEdge

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)) {
0
KmasterYC