Spec-Zone.ru › Yii 1.1

CPropertyValue

Пакет system.utils
Наследование класс CPropertyValue
С 1.0
Исходный код framework/utils/CPropertyValue.php
CPropertyValue — вспомогательный класс, предоставляющий статические методы для преобразования значений свойств компонентов к определённым типам.

CPropertyValue часто используется в методах установки свойств компонентов для обеспечения того, что новое значение свойства имеет нужный тип. Например, метод установки свойства типа boolean будет выглядеть следующим образом,
public function setPropertyName($value)
{
    $value=CPropertyValue::ensureBoolean($value);
    // $value is now of boolean type
}


Свойства могут иметь следующие типы со своими правилами преобразования:
  • строка: значение типа boolean будет преобразовано в 'true' или 'false'.
  • boolean: строка 'true' (регистронезависимо) будет преобразована в true, строка 'false' (регистронезависимо) — в false.
  • целое число
  • число с плавающей точкой
  • массив: строка, начинающаяся с '(' и заканчивающаяся ')', будет считаться выражением массива и будет вычислена. В противном случае возвращается массив со значением, которое необходимо гарантировать.
  • объект
  • перечисление: перечисляемый тип, представленный массивом строк.

Общедоступные методы

Метод Описание Определён в
ensureArray() Преобразует значение в тип массив. CPropertyValue
ensureBoolean() Преобразует значение в тип boolean. CPropertyValue
ensureEnum() Преобразует значение в тип перечисления. CPropertyValue
ensureFloat() Преобразует значение в тип с плавающей точкой. CPropertyValue
ensureInteger() Преобразует значение в тип целого числа. CPropertyValue
ensureObject() Преобразует значение в тип объект. CPropertyValue
ensureString() Преобразует значение в тип строки. CPropertyValue

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

ensureArray() метод

public static array ensureArray(mixed $value)
$value смешанный значение, подлежащее преобразованию.
{return} массив
Исходный код: framework/utils/CPropertyValue.php#108 (показать)
public static function ensureArray($value)
{
    if(
is_string($value))
    {
        
$value = trim($value);
        
$len = strlen($value);
        if (
$len >= 2 && $value[0] == '(' && $value[$len-1] == ')')
        {
            try
            {
                return eval(
'return array' . $value . ';');
            }
            catch (
ParseError $e)
            {
                return array();
            }
        }
        else
            return 
$len>0?array($value):array();
    }
    else
        return (array)
$value;
}

Преобразует значение в тип массив.

Если значение — строка и оно имеет вид (a,b,c), то возвращается массив, состоящий из каждого из элементов. Если значение — строка и оно не имеет этого вида, то возвращается массив, состоящий только из строки, если строка пустая — возвращается пустой массив. Если значение не строка, то возвращается массив, содержащий это значение, или то же самое значение, если оно уже является массивом.

ensureBoolean() метод

public static boolean ensureBoolean(mixed $value)
$value смешанный значение, подлежащее преобразованию.
{return} boolean
Исходный код: framework/utils/CPropertyValue.php#53 (показать)
public static function ensureBoolean($value)
{
    if (
is_string($value))
        return !
strcasecmp($value,'true') || $value!=0;
    else
        return (boolean)
$value;
}

Преобразует значение в тип boolean. Примечание: строка 'true' (регистронезависимо) преобразуется в true, строка 'false' (регистронезависимо) — в false. Если строка представляет неноль число, оно будет рассматриваться как true.

ensureEnum() метод

public static string ensureEnum(string $value, string $enumType)
$value строка перечисляемое значение для проверки.
$enumType строка имя класса перечисления (убедитесь, что оно включено перед вызовом этой функции).
{return} строка валидное значение перечисления
Исходный код: framework/utils/CPropertyValue.php#155 (показать)
public static function ensureEnum($value,$enumType)
{
    static 
$types=array();
    if(!isset(
$types[$enumType]))
        
$types[$enumType]=new ReflectionClass($enumType);
    if(
$types[$enumType]->hasConstant($value))
        return 
$value;
    else
        throw new 
CException(Yii::t('yii','Invalid enumerable value "{value}". Please make sure it is among ({enum}).',
            array(
'{value}'=>$value, '{enum}'=>implode(', ',$types[$enumType]->getConstants()))));
}

Преобразует значение в тип перечисления.

Этот метод проверяет, является ли значение указанного типа перечисления. Значение является допустимым значением перечисления, если оно равно имени константы в указанном типе перечисления (классе). Более подробную информацию о перечислениях см. в CEnumerable.

ensureFloat() метод

public static float ensureFloat(mixed $value)
$value смешанный значение, которое необходимо преобразовать.
{return} число с плавающей точкой
Исходный код: framework/utils/CPropertyValue.php#91 (показать)
public static function ensureFloat($value)
{
    return (float)
$value;
}

Преобразует значение в тип с плавающей точкой.

ensureInteger() метод

public static integer ensureInteger(mixed $value)
$value смешанный значение, которое необходимо преобразовать.
{return} целое число
Исходный код: framework/utils/CPropertyValue.php#81 (показать)
public static function ensureInteger($value)
{
    return (integer)
$value;
}

Преобразует значение в целочисленный тип.

ensureObject() метод

public static object ensureObject(mixed $value)
$value смешанный значение, которое необходимо преобразовать.
{return} объект
Исходный код: framework/utils/CPropertyValue.php#137 (показать)
public static function ensureObject($value)
{
    return (object)
$value;
}

Преобразует значение в тип объекта.

ensureString() метод

public static string ensureString(mixed $value)
$value смешанный значение, которое необходимо преобразовать.
{return} строка
Исходный код: framework/utils/CPropertyValue.php#68 (показать)
public static function ensureString($value)
{
    if (
is_bool($value))
        return 
$value?'true':'false';
    else
        return (string)
$value;
}

Преобразует значение в строковый тип. Примечание: логическое значение будет преобразовано в 'true', если оно истинно, и в 'false', если оно ложно.

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

Spec-Zone.ru

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