使用isset
进行编码时遇到致命错误。我搜索了stackoverflow但结果并不理想。
我正在
致命错误:不能对表达式的结果使用isset()(可以使用“null!== expression”代替)
我的代码是
if (!isset( $size || $color )) {
$style = '';
}else{
$style = 'font-size : ' . $size . ';color:' . $color;
}
答案 0 :(得分:4)
你这样使用
if (!isset( $size ) || !isset( $color )) {
答案 1 :(得分:4)
如评论(和错误消息)中所述,您无法将表达式的结果传递给let count = managedContext.countForFetchRequest(fetchRequest, error: nil) == 0
。
您可以使用多个isset调用,或者反转if / else块的逻辑并将多个参数传递给isset,我认为这是最干净的解决方案:
isset
您可以先通过设置默认值来进一步清理它,从而避免使用else部分:
//true if both are set
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}else{
$style = '';
}
你甚至可以使用三元,但有些人发现它们更难阅读:
$style = '';
if(isset($size, $color)) {
$style = 'font-size : ' . $size . ';color:' . $color;
}
答案 2 :(得分:0)
您的表达式始终返回true或false =>理论上,isset总是返回true,所以PHP不允许这个 变化
if (!isset( $size || $color )) {
要
if (!isset($size) || !isset($color)) {