PHP Class Prado\I18N\core\ChoiceFormat
ChoiceFormat converts between ranges of numeric values and string
names for those ranges.
A ChoiceFormat splits the real number line -Inf to +Inf into two or
more contiguous ranges. Each range is mapped to a string.
ChoiceFormat is generally used in a MessageFormat for displaying
grammatically correct plurals such as "There are 2 files."
$string = '[0] are no files |[1] is one file |(1,Inf] are {number} files';
$formatter = new MessageFormat(...); //init for a source
$translated = $formatter->format($string);
$choice = new ChoiceFormat();
echo $choice->format($translated, 0); //shows "are no files"
The message/string choices are separated by the pipe "|" followed
by a set notation of the form
#
[1,2] -- accepts values between 1 and 2, inclusive.
#
(1,2) -- accepts values between 1 and 2, excluding 1 and 2.
#
{1,2,3,4} -- only values defined in the set are accepted.
#
[-Inf,0) -- accepts value greater or equal to negative infinity
and strictly less than 0
Any non-empty combinations of the delimiters of square and round brackets
are acceptable.
Since version 3.1.2 the following set notation is also possible.
#
{n: n % 10 > 1 && n % 10 < 5} -- matches numbers like 2, 3, 4, 22, 23, 24
Where set is defined by the expression after
n:. In particular, the expression
accepts the following mathematical/logical operators to form a set of logical conditions
on the value given by
n:
#
< -- less than.
#
<= -- less than equals.
#
> -- greater than.
#
>= -- greater than equals.
#
== -- of equal value.
#
% -- modulo, e.g., 1 % 10 equals 1, 11 % 10 equals 1.
#
- -- minus, negative.
#
+ -- addition.
#
& -- conditional AND.
#
&& -- condition AND with short circuit.
#
| -- conditional OR.
#
|| -- conditional OR with short circuit.
#
! -- negation.
Additional round brackets can also be used to perform grouping.
ファイルを表示
Open project: pradosoft/prado
Class Usage Examples
Protected Properties
Property |
Type |
Description |
|
$inf |
float |
The value for positive infinity. |
|
$parse |
string |
The pattern to parse the formatting string. |
|
$validate |
string |
The pattern to validate a set notation |
|
Public Methods
Method |
Description |
|
__construct ( ) |
Constructor. |
|
format ( $string, $number ) : string |
For the choice string, and a number, find and return the
string that satisfied the set within the choices. |
|
isValid ( $number, $set ) : boolean |
Determine if the given number belongs to a given set |
|
parse ( $string ) : array |
Parse a choice string and get a list of sets and a list of strings
corresponding to the sets. |
|
Protected Methods
Method Details
__construct()
public method
Determine if the given number belongs to a given set
isValidSetNotation()
protected method
Parse a choice string and get a list of sets and a list of strings
corresponding to the sets.
Property Details
$inf protected_oe property
The value for positive infinity.
protected float $inf |
return |
float |
|
$parse protected_oe property
The pattern to parse the formatting string.
protected string $parse |
return |
string |
|
$validate protected_oe property
The pattern to validate a set notation
protected string $validate |
return |
string |
|