重写这个重复if语句的最佳方法是什么?

jay*_*bee 5 php if-statement

我在想有一种更简单的方法来编写这段代码,但不确定采用什么方法.基本上,我想检查每个变量是否存在,如果存在 - 将相应的标记添加到页面.

任何建议都会很棒.

<?php
    $words = get_field('words');
    $photography = get_field('photography');
    $architect = get_field('architect');
?>

<div class="panel">
    <?php if( $words ): ?>
        <div>
            <p><span>Words</span><span><?php echo $words;?></span></p>
        </div>
    <?php endif ;?>

    <?php if( $photography ): ?>
        <div>
            <p><span>Photography</span><span><?php echo $photography;?></span></p>
        </div>
    <?php endif; ?>

    <?php if( $architect ): ?>
        <div>
            <p><span>Architect</span><span><?php echo $architect;?></span></p>
       </div>
    <?php endif; ?>
</div>
Run Code Online (Sandbox Code Playgroud)

Sou*_*ose 5

你可以用array&loop-

<?php
    $fields = array();
    $fields['words'] = get_field('words');
    $fields['photography'] = get_field('photography');
    $fields['architect'] = get_field('architect');
?>

<div class="panel">
    <?php foreach($fields as $key => $value): 
         if($value)
    ?>
        <div>
            <p><span><?php echo ucwords($key);?></span><span><?php echo $value;?></span></p>
        </div>
    <?php 
         endif;
    endforeach;?>
</div>
Run Code Online (Sandbox Code Playgroud)


Man*_*gir 5

如果要拥有自己的标签,请使用适当的标签创建字段数组.

<div class="panel">
    <?php
    $fields = array (
            'words' => 'Words',
            'photography' => 'Photography',
            'architect' => 'Architect' 
    );
    foreach ( $fields as $field => $label ) {
        $value = get_field ( $field );
        if (!empty($value)) {
            echo '<div>
                <p><span>' . $label . '</span><span>' . $value . '</span></p>
            </div>';
        }
    }
    ?>
</div>
Run Code Online (Sandbox Code Playgroud)