致命错误:无法对表达式的结果使用 isset()

新手上路,请多包涵

使用 isset 编码时出现致命错误。我搜索了 stackoverflow,但结果并不令人满意。

我正进入(状态

致命错误:无法在表达式的结果上使用 isset()(您可以改用“null !== expression”)

我的代码是

if (!isset( $size || $color )) {
    $style = '';
}else{
    $style = 'font-size : ' . $size . ';color:' . $color;
}

原文由 Musa Muaz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 282
2 个回答

如评论(和错误消息)中所述,您不能将表达式的结果传递给 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 : '';

原文由 Steve 发布,翻译遵循 CC BY-SA 3.0 许可协议

你应该用这种方式

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

原文由 ScaisEdge 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题