如何格式化PHP if语句?

时间:2016-08-21 作者:jrcollins

谁能告诉我下面的正确语法是什么?

<?php if (function_exists(\'z_taxonomy_image\')) : ?>

        <img alt="" src="<?php if (function_exists(\'z_taxonomy_image_url\')) echo z_taxonomy_image_url($child->term_id);?>" />

        <?php else : ?>

        echo \'<img alt="\'. esc_html( get_the_title() ) .\'" src="\'. esc_url( get_template_directory_uri() . \'/assets/images/blank325_170.png\' ) .\'">\';

        <?php endif; ?>

2 个回复
SO网友:Ethan O\'Sullivan

只是格式化中的一些轻微语法错误。这将有助于:

<?php if ( function_exists( \'z_taxonomy_image\' ) ) { ?>
    <img alt="" src="<?php if ( function_exists( \'z_taxonomy_image_url\' ) ) { echo z_taxonomy_image_url( $child->term_id ); } ?>" />
<?php } else { ?>
    <img alt="<?php esc_html( get_the_title() ) ?>" src="<?php esc_url( get_template_directory_uri() . \'/assets/images/blank325_170.png\' ) ?>">
<?php } ?>

SO网友:vascofmdc

通常,在形成if/else语句时,我会考虑我在做什么。有两种方法可以实现它,基本上,我认为,这与美学和你习惯的东西有关。我个人在不同的地方使用这两种方式。

当我在只使用php的代码中工作时,我使用的if/else如下:

if(whatever_function()) {
    echo "do something";
} else {
    echo "do something else";
}
然而,当我在混合的情况下工作时,比如在循环或类似的情况下,我会使用以下方法:

<?php if(whatever_function()) : ?>
    do something
<?php else : ?>
    do something else
<?php endif; ?>
因此,对于仅php代码位,我使用荣誉;对于混合情况,我使用: .

您的示例显示了从php标记中触发的回声。这行不通。在这种情况下,我会这样做:

<?php if (function_exists(\'z_taxonomy_image\')) : ?>
    <img alt="" src="<?php if (function_exists(\'z_taxonomy_image_url\')) echo z_taxonomy_image_url($child->term_id);?>" />
<?php else : ?>
    <img alt="\'. esc_html( get_the_title() ) .\'" src="\'. esc_url( get_template_directory_uri() . \'/assets/images/blank325_170.png\' ) .\'"_
<?php endif; ?>