如何解决致命错误:无法在php中的表达式结果上使用isset可以使用“ null!== expression”代替
Graph::adjList
解决方法
您在这里进行了错误的比较。尝试更改:
<option value="january" <?php if(isset($fetch['bill_month']=="January")){ echo "selected"; }
?>>January</option>
为此:
<option value="january" <?php if(isset($fetch['bill_month']) && $fetch['bill_month'] =="January")){ echo "selected"; }
?>>January</option>
或此短代码:
<option value="january" <?= (isset($fetch['bill_month']) && $fetch['bill_month'] =="January")) ? "selected" : "" ?>>January</option>
如果设置了键且值不为空,则基本上isset($fetch['bill_month'])
返回true
或false
。您尝试做的是检查返回的值是否等于某个字符串。以我的方式,您首先检查值是否存在,然后再确定是否相等。
因为isset() only works with variables as passing anything else will result in a parse error
,所以您不能将expression
传递给它。
这应该有效。
<option value="January"
<?PHP
$isJan = $fetch['bill_month']=="January";
if(isset($isJan)){ echo "selected"; }
?>
>January</option>
,
<option value="january" <?php if(isset($fetch['bill_month']=="January")){ echo "selected"; }
isset-确定是否声明了一个变量,并且该变量不同于NULL。因此,应将条件更改为以下代码:
<option value="january" <?php if(isset($fetch['bill_month']) && $fetch['bill_month'] =="January")){ echo "selected"; }
,
在这种情况下使用isset
是不正确的。
您宁愿这样做:
<option value="january" <?php echo (isset($fetch['bill_month']) && $fetch['bill_month'] =="January")) ? "selected" : "" ?>>January</option>
这应该有效。
PS: 考虑到您在做什么,最好将月份放在一个数组中并遍历:
<?php
$months = [
'January','February','March','April','May','June','July','August','September','October','November','December',];
?>
<select name='month'>
<option disabled>Select Month</option>
<?php foreach($months as $month) { ?>
<option value="<?php echo strtolower($month); ?>" <?php if(isset($fetch['bill_month']) && $fetch['bill_month'] == $month) { echo "selected"; }
?>>
<?php echo $month; ?>
</option>
<?php } ?>
</select>
您将不需要在十二个月内重复执行该代码。
如果您使用的是Blade
,也请使用Laravel
语法
或将PHP自己的alternative syntax用于if
和foreach
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。