PHP使用false来打破if / else速记

时间:2015-02-24 23:19:42

标签: php

使用PHP if / else简写并想知道这是否可以接受:

$pages = get_children(array(
    'post_parent'   =>  49,
    'post_type'     => 'page',
    'post_status'   => 'publish',
));

$html = '';
$first = true;
$first_id = null;

foreach ($pages as $page) :
    $html .= '<li class=""><a href="" class="js-load-sub-nav' . ( $first ? " is-active" : "" ) . '" data-id="' . $page->ID . '" data-action="af_contact_nav_child_pages">' . $page->post_title . '</a></li>';
    ( $first ? $first_id = $page->ID : false );
    $first = false;
endforeach;

相关代码段:

( $first ? $first_id = $page->ID : false );

似乎工作正常??

1 个答案:

答案 0 :(得分:1)

这种技术众所周知 - 称为三元运算符。我不认为这很丑:)

如果切换逻辑,您甚至可以省略false

!$first ?: $first_id = $page->ID;

请注意,只有?后面的部分可以保留为空。