如何检查空或!空字段

时间:2015-08-03 10:35:29

标签: php if-statement

<?php $j=0; 
      while ($j<2){ if(empty($recent['id'][$k])) break;?>
      <div class="col-md-5 col-xs-7" style="padding:0px;">
       <div class="img-sm">
         <?php if(!empty($recent['image'][$k])) { ?>
          <img class="img-responsive" src="<?php echo base_url().url_thumb($recent['image'][$k],'konsultasi/') ?>" />
         <?php } else { ?>
           <img class="img-responsive" src="<?php base_url().'assets/images/logo.png' ?>" />
         <?php } ?>
       </div>

    </div>
<?php $j++; $k++; } ?>

问题是,如果空图像对我不起作用。

2 个答案:

答案 0 :(得分:1)

来自empty function documentation

  

如果var存在并且具有非空的非零值,则返回 FALSE 。否则返回 TRUE

  以下事项被认为是空的:
  •&#34;&#34; (空字符串)
  •0(0为整数)
  •0.0(0作为浮点数)
  •&#34; 0&#34; (0作为字符串)
  •NULL
  •错误
  •array()(空数组)
  •$ var; (声明的变量,但没有值)

只有$recent['image'][$k]empty()返回FALSE的上述情况不符。

也许你的字符串里面有空白字符。尝试使用:

if (empty(trim($recent['image'][$k])))

答案 1 :(得分:-1)

你没有在while循环之前声明你变量。

添加: $ k = 0;

我会这样做:

<?php

//Init loop var
$i = 0;

//Loop over results
while($i < 2){

   //Skip loop if no id found
   if(empty($recent['id'][$i]) continue;

   //Output containers
   echo '<div class="col-md-5 col-xs-7" style="padding:0px;">';
   echo '<div class="img-sm">';

   //Check has image, output dependent
   if(!empty($recent['image'][$i])){
       echo '<img class="img-responsive" src="<?php echo base_url().url_thumb($recent['image'][$i],'konsultasi/') ?>" />';
   }
   else{
       echo '<img class="img-responsive" src="<?php base_url().'assets/images/logo.png' ?>" />';
   }

   //Close containers
   echo '</div></div>';

   //Increment counter
   $i++;

}

?>

编辑:也许保持你的输出方式,使用浏览器而不是php(在这个编辑器中太懒了)。但请注意我只使用一个计数器变量来尝试并避免混淆。