Spec-Zone.ru › Yii 1.1

CChoiceFormat

Пакет system.i18n
Наследование класс CChoiceFormat
Исходный код framework/i18n/CChoiceFormat.php
CChoiceFormat — это вспомогательный класс, который выбирает подходящее сообщение на основе заданного числового значения. Кандидатные сообщения представлены в строчном формате:
'expr1#message1|expr2#message2|expr3#message3'
где каждое выражение должно быть допустимым PHP выражением со 'n' в качестве единственной переменной. Например, 'n==1' и 'n%10==2 && n>10' являются допустимыми выражениями. Переменная 'n' будет принимать заданное числовое значение, и если выражение вычисляет истинное значение, то будет возвращено соответствующее сообщение.

Например, при заданных кандидатных сообщениях 'n==1#one|n==2#two|n>2#others' и числовом значении 2, результирующее сообщение будет 'two'.

Для выражений типа 'n==1', мы также можем использовать сокращение '1'. Таким образом, приведенные выше примеры кандидатных сообщений можно упростить до '1#one|2#two|n>2#others'.

В случае, если заданное число не соответствует ни одному сообщению, будет возвращено последнее кандидатное сообщение.

PHP выражения будут вычислены с помощью evaluate.

Публичные методы

Метод Описание Определено в
format() Форматирует сообщение в соответствии с заданным числовым значением. CChoiceFormat

Защищенные методы

Метод Описание Определено в
evaluate() Вычисляет PHP выражение с заданным числовым значением. CChoiceFormat

Подробное описание методов

evaluate() метод

protected static boolean evaluate(string $expression, mixed $n)
$expression строка PHP выражение
$n смешанный тип числовое значение
{возвращаемое значение} булево значение результат выражения
Исходный код: framework/i18n/CChoiceFormat.php#72 (показать)
protected static function evaluate($expression,$n)
{
    try
    {
        return @eval(
"return $expression;");
    }
    catch (
ParseError $e)
    {
        return 
false;
    }
}

Вычисляет PHP выражение с заданным числовым значением.

format() метод

public static string format(string $messages, mixed $number)
$messages строка кандидатные сообщения в формате 'expr1#message1|expr2#message2|expr3#message3'. Подробнее см. CChoiceFormat.
$number смешанный тип числовое значение
{возвращаемое значение} строка выбранное сообщение
Исходный код: framework/i18n/CChoiceFormat.php#46 (показать)
public static function format($messages, $number)
{
    
$n=preg_match_all('/\s*([^#]*)\s*#([^\|]*)\|/',$messages.'|',$matches);
    if(
$n===0)
        return 
$messages;
    for(
$i=0;$i<$n;++$i)
    {
        
$expression=$matches[1][$i];
        
$message=$matches[2][$i];
        if(
$expression===(string)(int)$expression)
        {
            if(
$expression==$number)
                return 
$message;
        }
        elseif(
self::evaluate(str_replace('n','$n',$expression),$number))
            return 
$message;
    }
    return 
$message; // return the last choice
}

Форматирует сообщение в соответствии с заданным числовым значением.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CChoiceFormat

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API