1 <?php 2 // 正確地顯示覆數 3 if(!function_exists('_plurals_format')) 4 { 5 /** 6 * 正確的使用複數 7 * @access public 8 * @author zhaoyingnan 2016-02-17 11:53 9 * @
1 <?php 2 // 正確地顯示覆數 3 if(!function_exists('_plurals_format')) 4 { 5 /** 6 * 正確的使用複數 7 * @access public 8 * @author zhaoyingnan 2016-02-17 11:53 9 * @param string $sPluralName 非複數形式的名稱 10 * @param int $iAmount 數量 11 * @return string 12 * @note 13 **/ 14 function _plurals_format($sPluralName, $iAmount) 15 { 16 if(!$sPluralName || !is_numeric($iAmount) || $iAmount <= 0) 17 return ''; 18 // 特殊的複數形式 19 $arPluralName = array( 20 'addendum'=>'addenda', 21 'alga'=>'algae', 22 'alumna'=>'alumnae', 23 'alumnus'=>'alumni', 24 'analysis'=>'analyses', 25 'antenna'=>'antennas',//antennae 26 'apparatus'=>'apparatuses', 27 'appendix'=>'appendices',//appendixes 28 'axis'=>'axes', 29 'bacillus'=>'bacilli', 30 'bacterium'=>'bacteria', 31 'basis'=>'bases', 32 'beau'=>'beaux', 33 'bison'=>'bison', 34 'buffalo'=>'buffalos',//buffaloes 35 'bureau'=>'bureaus', 36 'bus'=>'busses',//buses 37 'cactus'=>'cactuses',//cacti 38 'calf'=>'calves', 39 'child'=>'children', 40 'corps'=>'corps', 41 'corpus'=>'corpora',//corpuses 42 'crisis'=>'crises', 43 'criterion'=>'criteria', 44 'curriculum'=>'curricula', 45 'datum'=>'data', 46 'deer'=>'deer', 47 'die'=>'dice', 48 'dwarf'=>'dwarfs',//dwarves 49 'diagnosis'=>'diagnoses', 50 'echo'=>'echoes', 51 'elf'=>'elves', 52 'ellipsis'=>'ellipses', 53 'embargo'=>'embargoes', 54 'emphasis'=>'emphases', 55 'erratum'=>'errata', 56 'fireman'=>'firemen', 57 'fish'=>'fish',//fishes 58 'focus'=>'focuses', 59 'foot'=>'feet', 60 'formula'=>'formulas', 61 'fungus'=>'fungi',//funguses 62 'genus'=>'genera', 63 'goose'=>'geese', 64 'half'=>'halves', 65 'hero'=>'heroes', 66 'hippopotamus'=>'hippopotami',//hippopotamuses 67 'hoof'=>'hoofs',//hooves 68 'hypothesis'=>'hypotheses', 69 'index'=>'indices',//indexes 70 'knife'=>'knives', 71 'leaf'=>'leaves', 72 'life'=>'lives', 73 'loaf'=>'loaves', 74 'louse'=>'lice', 75 'man'=>'men', 76 'matrix'=>'matrices', 77 'means'=>'means', 78 'medium'=>'media', 79 'memorandum'=>'memoranda', 80 'millennium'=>'millenniums',//milennia 81 'moose'=>'moose', 82 'mosquito'=>'mosquitoes', 83 'mouse'=>'mice', 84 'nebula'=>'nebulae',//nebulas 85 'neurosis'=>'neuroses', 86 'nucleus'=>'nuclei', 87 'oasis'=>'oases', 88 'octopus'=>'octopi',//octopuses 89 'ovum'=>'ova', 90 'ox'=>'oxen', 91 'paralysis'=>'paralyses', 92 'parenthesis'=>'parentheses', 93 'person'=>'people', 94 'phenomenon'=>'phenomena', 95 'potato'=>'potatoes', 96 'radius'=>'radii',//radiuses 97 'scarf'=>'scarfs',//scarves 98 'self'=>'selves', 99 'series'=>'series', 100 'sheep'=>'sheep', 101 'shelf'=>'shelves', 102 'scissors'=>'scissors', 103 'species'=>'species', 104 'stimulus'=>'stimuli', 105 'stratum'=>'strata', 106 'syllabus'=>'syllabi',//syllabuses 107 'symposium'=>'symposia',//symposiums 108 'synthesis'=>'syntheses', 109 'synopsis'=>'synopses', 110 'tableau'=>'tableaux', 111 'that'=>'those', 112 'thesis'=>'theses', 113 'thief'=>'thieves', 114 'this'=>'these', 115 'tomato'=>'tomatoes', 116 'tooth'=>'teeth', 117 'torpedo'=>'torpedoes', 118 'vertebra'=>'vertebrae', 119 'veto'=>'vetoes', 120 'vita'=>'vitae', 121 'watch'=>'watches', 122 'wife'=>'wives', 123 'wolf'=>'wolves', 124 'woman'=>'women', 125 'zero'=>'zeros',//zeroes 126 ); 127 128 // 如果只有一個 129 if($iAmount == 1) 130 return $sPluralName; 131 132 // 如果超過一個,並且是特殊的複數形式 133 if(isset($arPluralName[$sPluralName])) 134 return $arPluralName[$sPluralName]; 135 136 // 超過一個,並且是一個標準的複數形式 137 return $sPluralName.'s'; 138 } 139 } 140 141 echo 'Sybil ate three '._plurals_format('biscuit', 3).', one after the other.',PHP_EOL; 142 echo 'The two '._plurals_format('woman', 2).' will meet tomorrow in the final.';