Lors du codage avec isset
, j'obtiens une erreur fatale. J'ai effectué une recherche stackoverflow mais les résultats ne sont pas satisfaisants.
Je reçois
Erreur fatale: impossible d'utiliser isset () sur le résultat d'une expression (vous pouvez utiliser "null! == expression" à la place)
Mes codes sont
if (!isset( $size || $color )) {
$style = '';
}else{
$style = 'font-size : ' . $size . ';color:' . $color;
}
Comme indiqué dans les commentaires (et le message d'erreur), vous ne pouvez pas transmettre le résultat d'une expression à isset
.
Vous pouvez utiliser plusieurs appels isset ou inverser la logique de votre bloc if/else et transmettre plusieurs paramètres à isset, ce qui me semble être la solution la plus propre:
//true if both are set
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}else{
$style = '';
}
Vous pouvez nettoyer cela un peu plus loin en définissant d'abord la valeur par défaut, évitant ainsi la nécessité d'une section else:
$style = '';
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}
Vous pouvez même utiliser un ternaire, bien que certaines personnes le trouvent plus difficile à lire:
$style = isset($size, $color) ? 'font-size : ' . $size . ';color:' . $color : '';
vous devriez utiliser cette façon
if (!isset( $size ) || !isset( $color )) {
Votre expression retourne toujours true ou false => En théorie, isset renvoie toujours true, donc PHP ne permet pas
Changement
if (!isset( $size || $color )) {
À
if (!isset($size) || !isset($color)) {