當前位置: 首頁>>代碼示例>>PHP>>正文


PHP DataValidator::parseNumberDimension方法代碼示例

本文整理匯總了PHP中DataValidator::parseNumberDimension方法的典型用法代碼示例。如果您正苦於以下問題:PHP DataValidator::parseNumberDimension方法的具體用法?PHP DataValidator::parseNumberDimension怎麽用?PHP DataValidator::parseNumberDimension使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在DataValidator的用法示例。


在下文中一共展示了DataValidator::parseNumberDimension方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: parseNumber

 /**
  * Sprawdza numer pod kątem podanej jednostki i podanych do niej opcji
  * @param string $text tekst do sprawdzenia
  * @param array $dimensions tablica możliwych jednostek. Nazwy jednostek powinno być kluczami owej tablicy natomiast wartośći, tablicą.
  * Oto możliwe wartości ustawień:
  * 	<strong>min_value</strong> - wartość minimalna
  * 	<strong>max_value</strong> - wartość maksymalna
  * 	<strong>values</strong> - tablica dopuszczalnych wartości. Podanie tej tablicy spowoduje zignorowanie ustawień min_value oraz max_values
  * 	<strong>round_places</strong> - liczba miejsc po przecinku do których zaokrąglić liczbę
  * 	<strong>absolute</strong> - Czy liczba ma być wartośćią bezwzględną
  *
  * @param string $defaultDimension domyślna jednostka
  * @param bool $retDimension czy zwracana liczba ma zawierać jednostkę?
  * @return string|bool
  * @uses self::$parseNumberDimension nazwa jednostki uzytej podczas ostatniego sprawdzania numeru
  */
 public static function parseNumber($text, $dimensions, $defaultDimension = false, $retDimension = false)
 {
     $text = trim($text);
     // brak tekstu
     if (strlen($text) == 0) {
         trigger_error('Empty string to check', E_USER_NOTICE);
     }
     //niepoprawny format
     if (!preg_match('/([0-9]+(?:(?:\\.|\\,)[0-9]+)?)\\s*([a-z]*)/i', $text, $matches)) {
         return -1;
     }
     $number = (double) $matches[1];
     $dimension = trim(strtolower($matches[2]));
     //have dimension
     if ($dimension == '') {
         // nie ma domyslnego to pobiera pierwszy z brzegu
         if ($defaultDimension == false) {
             $dimension = reset(array_keys($dimensions));
         } else {
             $dimension = $defaultDimension;
         }
     }
     self::$parseNumberDimension = $dimension;
     // nie ma jednostki badz nie ustawien jednostki to wywala numer
     if ($dimension === false) {
         return $number;
     }
     if (!isset($dimensions[$dimension])) {
         return $number;
     }
     $options = $dimensions[$dimension];
     // zaokraglanie
     if (isset($options['round_places']) && is_numeric($options['round_places']) && $options['round_places'] >= 0) {
         $roundPlaces = $options['round_places'];
         $number = round($number, $roundPlaces);
     }
     // wartosc bezwzgledna
     if (isset($options['absolute']) && $options['absolute']) {
         $number = abs($number);
     }
     if (isset($options['values']) && is_array($options['values'])) {
         if (in_array($number, $options['values'])) {
             return $retDimension ? $number . $dimension : $number;
         } else {
             // nie jest w podanych wartosciach
             trigger_error('The number is not in valid array', E_USER_NOTICE);
         }
     }
     if (isset($options['min_value']) && is_numeric($options['min_value'])) {
         if ($number < $options['min_value']) {
             trigger_error('Out of range (minimal)', E_USER_NOTICE);
             // wartosc za mala
             return false;
         }
     }
     if (isset($options['max_value']) && is_numeric($options['max_value'])) {
         if ($number > $options['max_value']) {
             trigger_error('Out of range (maximal)', E_USER_NOTICE);
             // wartosc za duza
             return false;
         }
     }
     return $retDimension ? $number . $dimension : $number;
 }
開發者ID:crazy-codes,項目名稱:bbcode,代碼行數:80,代碼來源:DataValidator.php


注:本文中的DataValidator::parseNumberDimension方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。