我在我的网站上添加了一个脚本,当产品过滤器没有显示任何结果时会显示一条消息。我包含的代码是:
<?php
if(empty($htmlFilter->rows)){
echo '<p>Sorry, no results found - try a different search selection</p>';
}
?>
这样可行,但我遇到的问题是该消息也显示在不存在过滤器的页面上。我需要为页面上不存在过滤器的时间写一个条件。
有人可以帮忙吗?
快速更新:当我添加var_dump($ htmlFilter)时,它来自sup
变量不对吗?
答案 0 :(得分:1)
通常你会期望一个未定义的变量错误,但它静默地只评估为true
,即使没有设置变量,这也是一件坏事,因为不是每个人都知道这一点。
作为一种解决方法,您可以在检查变量是否为空之前另外检查变量是否已设置。
if (isset($htmlFilter) && empty($htmlFilter->rows)) {
echo '<p>Sorry, no results found - try a different search selection</p>';
}
答案 1 :(得分:0)
如果我得到了你所写的内容,你可以使用这样的isset函数。
<?php
if(empty($htmlFilter->rows) && isset($htmlFilter)){
echo '<p>Sorry, no results found - try a different search selection</p>';
}
?>
编辑:
此代码:
<?php
echo is_null($algo);
echo '<br>';
echo isset($algo);
echo '<br>';
echo empty($algo);
?>
返回:
1
1
如您所见,变量$ algo未初始化也未声明。
答案 2 :(得分:0)
你能试试......
<?php
if( isset($htmlFilter->rows) && empty($htmlFilter->rows) ) {
echo '<p>Sorry, no results found - try a different search selection</p>';
}
?>
答案 3 :(得分:0)
如果$ htmlFilter-&gt;行应该是一个数组,你可以这样做:
<?php
if(isset($htmlFilter->rows) && count($htmlFilter->rows) === 0){
echo '<p>Sorry, no results found - try a different search selection</p>';
}
?>
答案 4 :(得分:0)
我终于解决了这个问题 - 我使用了以下代码:
if(empty($this->rows) && !empty($htmlFilter)){
echo '<p>Sorry, no results found - try a different search selection</p>'
它也没有放在正确的行中: - /
现在所有排序 - 感谢您的帮助! : - )