Example #1
0
 /**
  * Returns the name of a currency given its code.
  *
  * @param string $currencyCode The currency code
  * @param null|number|string The quantity identifier. Allowed values:
  * <ul>
  *     <li>`null` to return the standard name, not associated to any quantity</li>
  *     <li>`number` to return the name following the plural rule for the specified quantity</li>
  *     <li>string `'zero'|'one'|'two'|'few'|'many'|'other'` the plural rule
  * </ul>
  * @param string $locale The locale to use. If empty we'll use the default locale set with {@link \Punic\Data::setDefaultLocale()}.
  *
  * @return string Returns an empty string if $currencyCode is not valid, the localized currency name otherwise
  */
 public static function getName($currencyCode, $quantity = null, $locale = '')
 {
     $result = '';
     $data = static::getLocaleData($currencyCode, $locale);
     if (is_array($data)) {
         $result = $data['name'];
         if (!is_null($quantity) && isset($data['pluralName'])) {
             if (is_string($data) && in_array($quantity, array('zero', 'one', 'two', 'few', 'many', 'other'))) {
                 $pluralRule = $quantity;
             } else {
                 $pluralRule = Plural::getRule($quantity, $locale);
             }
             if (!isset($data['pluralName'][$pluralRule])) {
                 $pluralRule = 'other';
             }
             $result = $data['pluralName'][$pluralRule];
         }
     }
     return $result;
 }
Example #2
0
 /**
  * Format a unit string.
  *
  * @param int|float|string $number The unit amount
  * @param string $unit The unit identifier (eg 'duration/millisecond' or 'millisecond')
  * @param string $width The format name; it can be 'long' (eg '3 milliseconds'), 'short' (eg '3 ms') or 'narrow' (eg '3ms'). You can also add a precision specifier ('long,2' or just '2')
  * @param string $locale The locale to use. If empty we'll use the default locale set in \Punic\Data
  *
  * @return string
  *
  * @throws Exception\ValueNotInList
  */
 public static function format($number, $unit, $width = 'short', $locale = '')
 {
     $data = Data::get('units', $locale);
     $precision = null;
     if (is_int($width)) {
         $precision = $width;
         $width = 'short';
     } elseif (is_string($width) && preg_match('/^(?:(.*),)?([+\\-]?\\d+)$/', $width, $m)) {
         $precision = intval($m[2]);
         $width = $m[1];
         if (!isset($width[0])) {
             $width = 'short';
         }
     }
     if (strpos($width, '_') === 0 || !isset($data[$width])) {
         $widths = array();
         foreach (array_keys($data) as $w) {
             if (strpos($w, '_') !== 0) {
                 $widths[] = $w;
             }
         }
         throw new Exception\ValueNotInList($width, $widths);
     }
     $data = $data[$width];
     if (strpos($unit, '/') === false) {
         $unitCategory = null;
         $unitID = null;
         foreach (array_keys($data) as $c) {
             if (strpos($c, '_') === false) {
                 if (isset($data[$c][$unit])) {
                     if (is_null($unitCategory)) {
                         $unitCategory = $c;
                         $unitID = $unit;
                     } else {
                         $unitCategory = null;
                         break;
                     }
                 }
             }
         }
     } else {
         list($unitCategory, $unitID) = explode('/', $unit, 2);
     }
     $rules = null;
     if (strpos($unit, '_') === false && !is_null($unitCategory) && !is_null($unitID) && isset($data[$unitCategory]) && array_key_exists($unitID, $data[$unitCategory])) {
         $rules = $data[$unitCategory][$unitID];
     }
     if (is_null($rules)) {
         $units = array();
         foreach ($data as $c => $us) {
             if (strpos($c, '_') === false) {
                 foreach (array_keys($us) as $u) {
                     if (strpos($c, '_') === false) {
                         $units[] = "{$c}/{$u}";
                     }
                 }
             }
         }
         throw new \Punic\Exception\ValueNotInList($unit, $units);
     }
     $pluralRule = Plural::getRule($number, $locale);
     //@codeCoverageIgnoreStart
     // These checks aren't necessary since $pluralRule should always be in $rules, but they don't hurt ;)
     if (!isset($rules[$pluralRule])) {
         if (isset($rules['other'])) {
             $pluralRule = 'other';
         } else {
             $availableRules = array_keys($rules);
             $pluralRule = $availableRules[0];
         }
     }
     //@codeCoverageIgnoreEnd
     return sprintf($rules[$pluralRule], Number::format($number, $precision, $locale));
 }
Example #3
0
        } elseif (empty($match3[1])) {
            $b = $match2[0];
        } else {
            $b = $match3[1];
        }
        if (empty($match1)) {
            return 'false';
        } else {
            $real = $b;
            $empty = $match1[1];
            $max = $real * $real + $empty * $empty;
            return $max;
        }
    }
    public function __construct($a, $b)
    {
        $this->a = $a;
        $this->b = $b;
    }
    public function compare()
    {
        $amulti = $this->multi($this->a);
        $bmulti = $this->multi($this->b);
        $biggerone = $amulti > $bmulti ? $this->a : $this->b;
        echo $biggerone;
    }
}
$a = '2+2i';
$b = '3+2i';
$c = new Plural($a, $b);
$c->compare();