如果字段为空,则不显示属性

Do not display attributes if the field is empty

在我有图片的页面上,我添加了alt和title属性,这些字段有时为空,有时为空。

现在我是这样取出来的:

<?php foreach ($images as $image) { ?>
    <img src="<?= $image->getImageUrl() ?>" 
        alt="<?= $image->image_alt ?>" 
        title="<?= $image->image_title ?>">
<?php } ?>

而且我需要在这里加一个勾,当这些字段为空时,则不在页面上显示alt和title属性。

我尝试做这样的事情,但它们仍然出现:

<?php foreach ($images as $image) { ?>
    <img src="<?= $image->getImageUrl() ?>" 
        <?php if (!empty($image->image_alt) { ?> alt="<?= $image->image_alt ?>" <?php } ?> 
        <?php if (!empty($image->image_title) { ?> title="<?= $image->image_title ?>" <?php } ?>>
<?php } ?>

也试过这样:

<?php foreach ($images as $image) { ?>
    <img src="<?= $image->getImageUrl() ?>" 
         <?php if (!empty($image->image_alt) && !empty($image->image_title)) { ?>
             alt="<?= $image->image_alt ?>" 
             title="<?= $image->image_title ?>">
         <?php } ?>
<?php } ?>

你可以这样做

<?php foreach ($images as $image) { 
    if(!empty($image->getImageUrl() && !empty($image->image_alt) && !empty($image->image_title)) { ?>
   .....

我真的不知道要检查什么但是检查变量是否为空,然后使用空函数

如果值为空

if(null !== $image->getImageUrl() && ....)

跳进跳出PHP总是很乱。先把数据整理出来,才输出html.

$myImages=[];

foreach ($images as $key=>$image) {
  $src   = 'src="'.$image->getImageUrl().'"';
  $alt   = (empty($image->image_alt)   ? '' : 'alt="'.$image->image_alt.'"' );
  $title = (empty($image->image_title) ? '' : 'title="'.$image->image_alt.'"' );

  $myImages[]="<img $src $alt $title>";
  }

echo implode('',$myImages);