本文整理汇总了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;
}