evaluate() public static method

public static evaluate ( $data, $params = [] )
Esempio n. 1
0
 public function testEvaluateFunction()
 {
     $this->assertEquals(1, Utils::evaluate(1));
     $this->assertEquals(2, Utils::evaluate(function () {
         return 2;
     }));
 }
Esempio n. 2
0
 public function display($value)
 {
     if ($this->validPairs && isset($this->validPairs[$value])) {
         return $this->validPairs[$value];
     }
     if ($this->validValues && ($validValues = Utils::evaluate($this->validValues))) {
         // search value in validValues array
         // because we store the validValues in an (label => value) array.
         if (ArrayUtils::is_assoc_array($validValues)) {
             if (false !== ($label = array_search($value, $validValues))) {
                 return $label;
             }
             return;
         } elseif (in_array($value, $validValues)) {
             return $value;
         }
     }
     // Optional Values
     if ($this->optionValues && ($optionValues = Utils::evaluate($this->optionValues))) {
         // search value in validValues array
         // because we store the validValues in an (label => value) array.
         if (ArrayUtils::is_assoc_array($optionValues)) {
             if (false !== ($label = array_search($value, $optionValues))) {
                 return $label;
             }
             return $value;
         } elseif (in_array($value, $optionValues)) {
             return $value;
         }
         return $value;
     }
     // backward compatible method
     if ($this->validValueBuilder && ($values = call_user_func($this->validValueBuilder))) {
         if (ArrayUtils::is_assoc_array($values)) {
             if (false !== ($label = array_search($value, $values))) {
                 return $label;
             }
             return;
         } elseif (in_array($value, $values)) {
             return $value;
         }
     }
     if ($this->isa == 'bool') {
         return $value ? _('Yes') : _('No');
     }
     if ($value) {
         if (is_string($value)) {
             return _($value);
         } elseif ($value instanceof DateTime) {
             return $value->format(DateTime::ATOM);
         }
     }
     return $value;
 }