与isset
编码时,我得到一个致命的错误。我已经搜索了stackoverflow,但结果并不令人满意。
I am getting
致命错误:不能对表达式的结果使用isset()(可以使用"null !== expression"代替)
我的代码是
if (!isset( $size || $color )) {
$style = '';
}else{
$style = 'font-size : ' . $size . ';color:' . $color;
}
正如在注释(和错误消息)中提到的,您不能将表达式的结果传递给isset
。
你可以使用多个isset调用,或者反转你的if/else块的逻辑并传递多个参数给isset,我认为这是最干净的解决方案:
//true if both are set
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}else{
$style = '';
}
您可以通过先设置默认值来进一步清理它,从而避免需要else部分:
$style = '';
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}
你甚至可以使用三元制,尽管有些人觉得它们更难读:
$style = isset($size, $color) ? 'font-size : ' . $size . ';color:' . $color : '';
你应该这样做
if (!isset( $size ) || !isset( $color )) {
你的表达式总是返回true或false =>理论上isset总是返回true所以PHP不允许
把
if (!isset( $size || $color )) {
if (!isset($size) || !isset($color)) {