The singular helper method is the logical opposite to the plural method: it will attempt to take a given $value and return the singular form of that word. The internal mechanisms are similar to the plural method.
#Signature
The signature of the singular method is:
1public static function singular(
2 $value
3 );
#Example Use
1use Illuminate\Support\Str;
2
3// cow
4echo Str::singular('cows');
5
6// person
7echo Str::singular('people');
8
9// curve
10echo Str::singular('curves');
11
12// message
13echo Str::singular('messages');
#singular Special Cases
Any words, or word endings, in the following table will not be affected by the singular method. This is either because the resulting word is already singular, or because there is no inflection available. Word endings are denoted by the prefix *:
The following table lists the words that are not inflected by the singular method. This is either because the resulting word is already singular, or because there are no clear inflection rules available, or they handled separately (see the singular Special cases table).
| Special Cases | Special Cases | Special Cases | Special Cases |
|---|---|---|---|
| Amoyese | bison | Borghese | bream |
| breeches | britches | buffalo | cantus |
| carp | chassis | clippers | code |
| caoitus | Congoese | contretemps | corps |
| data | debris | diabetese | djinn |
| eland | elk | equipment | Faroese |
| flounder | Foochowese | Furniture | gallows |
| Genevese | Genoese | Glibertese | graffiti |
| headquarters | herpes | hijinks | Hottentotese |
| information | innings | jackanapes | Kiplingese |
| Kongoese | Lucchese | Luggage | mackerel |
| Maltese | *media | mews | moose |
| mumps | Nankingese | news | nexus |
| Niasese | Pekingese | Piedmontese | pincers |
| Postoiese | pliers | Portuguese | proceedings |
| rabies | rice | rhinoceros | salmon |
| Sarawakese | scissors | seabass | sea-bass |
| series | Shavese | shears | siemens |
| species | staff | swine | testes |
| trousers | trout | tuna | Vermontese |
| Wenchowese | whitting | wildebeest | Yengeese |
In addition to the general words that are not inflected by the singular method, the following tables list the word patterns or values that will also not be inflected by this method:
| Words Not Inflected | Words Not Inflected | Words Not Inflected | Words Not Inflected |
|---|---|---|---|
| *nese | *rese | *lese | *mese |
| *deer | *fish | *measles | *ois |
| *pox | *sheep | *ss | data |
| police | pants | clothes |
In addition to words that are not inflected, the method also handles some special cases. These are generally words that do not have a clear pragmatic method of handling the inflection of converting the word to its singular equivalent:
| Plural Form | Singular Form |
|---|---|
| atlases | atlas |
| avalanches | avalanche |
| axes | axe |
| beefs | beef |
| caches | cache |
| cafes | cafe |
| chateaux | chateau |
| criteria | criterion |
| niveaux | niveau |
| children | child |
| cookies | cookie |
| corpuses | corpus |
| cows | cow |
| criteria | criterion |
| curricula | curriculum |
| curves | curve |
| demos | demo |
| dominos | domino |
| echoes | echo |
| emphases | emphasis |
| feet | foot |
| foes | foe |
| fungi | fungus |
| ganglions | ganglion |
| genies | genie |
| genera | genus |
| graffiti | graffito |
| graves | grave |
| hippopotami | hippopotamus |
| hoaxes | hoax |
| hoofs | hoof |
| humans | human |
| irises | iris |
| larvae | larva |
| leaves | leaf |
| loaves | loaf |
| men | man |
| media | medium |
| memoranda | memorandum |
| monies | money |
| mongooses | mongoose |
| mottoes | motto |
| moves | move |
| mythoi | mythos |
| neuroses | neurosis |
| niches | niche |
| nuclei | nucleus |
| numina | numen |
| oases | oasis |
| occiputs | occiput |
| octopuses | octopus |
| opuses | opus |
| oxen | ox |
| passersby | passerby |
| penises | penis |
| people | person |
| plateaux | plateau |
| runners-up | runner-up |
| sexes | sex |
| soliloquies | soliloquy |
| sons-in-law | son-in-law |
| syllabi | syllabus |
| testes | testis |
| thieves | thief |
| teeth | tooth |
| tornadoes | tornado |
| trilbys | trilby |
| turfs | turf |
| waves | wave |
| volcanoes | volcano |
#Global str_singular Helper Function
The str_singular function is a shortcut to calling Str::singular. This function is declared in the global namespace.
∎