When coding with isset
i am getting an fatal error.I have searched stackoverflow but results are not satisfactory.
I am getting
Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead)
My codes are
if (!isset( $size || $color )) {
$style = '';
}else{
$style = 'font-size : ' . $size . ';color:' . $color;
}
As mentioned in the comments (and the error message), you cannot pass the result of an expression to isset
.
You can use multiple isset calls, or reverse the logic of your if/else block and pass multiple parameters to isset, which i think is the cleanest solution:
//true if both are set
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}else{
$style = '';
}
You can clean this up a little further by setting the default value first, thus avoiding the need for an else section:
$style = '';
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}
You could even use a ternary, though some people find them harder to read:
$style = isset($size, $color) ? 'font-size : ' . $size . ';color:' . $color : '';
you shuold use this way
if (!isset( $size ) || !isset( $color )) {
Your expression always return either true or false => In theory isset always return true so PHP not allow this
Change
if (!isset( $size || $color )) {
To
if (!isset($size) || !isset($color)) {