framework/helpers/BaseHtml.php
public static function ul($items, $options = [])
    {
        $tag = ArrayHelper::remove($options, 'tag', 'ul');
        $encode = ArrayHelper::remove($options, 'encode', true);
        $formatter = ArrayHelper::remove($options, 'item');
        $separator = ArrayHelper::remove($options, 'separator', "\n");
        $itemOptions = ArrayHelper::remove($options, 'itemOptions', []);

        if (empty($items)) {
            return static::tag($tag, '', $options);
        }

        $results = [];
        foreach ($items as $index => $item) {
            if ($formatter !== null) {
                $results[] = call_user_func($formatter, $item, $index);
            } else {
                $results[] = static::tag('li', $encode ? static::encode($item) : $item, $itemOptions);
            }
        }

        return static::tag(
            $tag,
            $separator . implode($separator, $results) . $separator,
            $options
        );
    }
public static function ul($items, $options = [])
    {
        $tag = ArrayHelper::remove($options, 'tag', 'ul');
        $encode = ArrayHelper::remove($options, 'encode', true);
        $formatter = ArrayHelper::remove($options, 'item');
        $separator = ArrayHelper::remove($options, 'separator', "\n");
        $itemOptions = ArrayHelper::remove($options, 'itemOptions', []);

        if (empty($items)) {
            return static::tag($tag, '', $options);
        }

        $results = [];
        foreach ($items as $index => $item) {
            if ($formatter !== null) {
                $results[] = call_user_func($formatter, $item, $index);
            } else {
                $results[] = static::tag('li', $encode ? static::encode($item) : $item, $itemOptions);
            }
        }

        return static::tag(
            $tag,
            $separator . implode($separator, $results) . $separator,
            $options
        );
    }
public static function ul ( $ items , $ options = [ ] ) { $ tag = ArrayHelper :: remove ( $ options , 'tag' , 'ul' ) ; $ encode = ArrayHelper :: remove ( $ options , 'encode' , true ) ; $ formatter = ArrayHelper :: remove ( $ options , 'item' ) ; $ separator = ArrayHelper :: remove ( $ options , 'separator' , "\n" ) ; $ itemOptions = ArrayHelper :: remove ( $ options , 'itemOptions' , [ ] ) ; if ( empty ( $ items ) ) { return static :: tag ( $ tag , '' , $ options ) ; } $ results = [ ] ; foreach ( $ items as $ index => $ item ) { if ( $ formatter !== null ) { $ results [ ] = call_user_func ( $ formatter , $ item , $ index ) ; } else { $ results [ ] = static :: tag ( 'li' , $ encode ? static :: encode ( $ item ) : $ item , $ itemOptions ) ; } } return static :: tag ( $ tag , $ separator . implode ( $ separator , $ results ) . $ separator , $ options ) ; }
Generates an unordered list.
@param array|\Traversable $items the items for generating the list. Each item generates a single list item.
Note that items will be automatically HTML encoded if `$options['encode']` is not set or true.
@param array $options options (name => config) for the radio button list. The following options are supported:

- encode: boolean, whether to HTML-encode the items. Defaults to true.
This option is ignored if the `item` option is specified.
- separator: string, the HTML code that separates items. Defaults to a simple newline (`"\n"`).
This option is available since version 2.0.7.
- itemOptions: array, the HTML attributes for the `li` tags. This option is ignored if the `item` option is specified.
- item: callable, a callback that is used to generate each individual list item.
The signature of this callback must be:

```php
function ($item, $index)
```

where $index is the array key corresponding to `$item` in `$items`. The callback should return
the whole list item tag.

See [[renderTagAttributes()]] for details on how attributes are being rendered.

@return string the generated unordered list. An empty list tag will be returned if `$items` is empty.
Generates an unordered list . @param array| \ Traversable $items the items for generating the list . Each item generates a single list item . Note that items will be automatically HTML encoded if $options [ encode ] is not set or true . @param array $options options ( name = > config ) for the radio button list . The following options are supported :