このコードがなぜあるのか混乱しています:
$mapped_class = ( $mapped_field_index = array_search( $field_name, $automapped_header ) !== false ) ? " mapped mapped_to-" . $mapped_field_index : "";
...一貫して(該当する場合)1
として返されます$mapped_field_index
これに対して、拡張コード:
$mapped_field_index = array_search( $field_name, $automapped_header );
$mapped_class = $mapped_field_index !== false ? " mapped mapped_to-" . $mapped_field_index : "";
...正しい検索インデックスを。として表示します$mapped_field_index
。
PHPでは、IFコンテキスト内の割り当ても式として評価され、割り当てられた値を返すと思いました。結果が得られない$mapped_class
状況ではが空白であるため、これはこれらの両方の例に当てはまるようです。array_search()
しかし、どちらの場合も、 (実際のインデックスではなくTRUEを示しているように見える)三部形式ではなく$mapped_field_index
、正しいarray_search()
インデックスが含まれていることを期待していました。1
三項演算子はここで貢献効果がありますか?