PHP正確的使用複數

来源:http://www.cnblogs.com/yingnan/archive/2016/02/17/5194817.html
-Advertisement-
Play Games

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.';

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引用計數 Python預設的垃圾收集機制是“引用計數”,每個對象維護了一個ob_ref欄位。它的優點是機制簡單,當新的引用指向該對象時,引用計數加1,當一個對象的引用被銷毀時減1,一旦對象的引用計數為0,該對象立即被回收,所占用的記憶體將被釋放。它的缺點是需要額外的空間維護引用計數,不過最主要的問題是
  • session原理,session如何存儲,如何使用redis/分散式文件系統/資料庫存儲session,負載均衡中如何解決session不一致問題
  • 註:本文主要記錄自《深入分析java web技術內幕》"第四章 javac編譯原理" 1、javac作用 將*.java源代碼文件轉化為*.class文件 2、編譯流程 流程: 詞法分析器:將源碼轉換為Token流 將源代碼劃分成一個個Token(Token包含的元素類型看3.2) 語法分析器:將T
  • IO是輸入和輸出的簡稱,在實際的使用時,輸入和輸出是有方向的。就像現實中兩個人之間借錢一樣,例如A借錢給B,相對於A來說是借出,而相對於B來說則是借入。所以在程式中提到輸入和輸出時,也需要區分清楚是相對的內容。 在 程式中,輸入和輸出都是相對於當前程式而言的,例如從硬碟上讀取一個配置文件的內容到程式
  • 一、SSH框架的概念 SSH框架是java web開發流行的一個開源集合框架,SSH框架包含了Struts框架,Spring框架和Hibernate框架。SSH框架可以用於構建靈活、易於擴展的多層Web應用程式。 二、SSH框架的工作原理 SSH框架中的Struts負責攔截用戶請求,正常情況下用戶請
  • 1、路由是程式的方法和URL的一一映射。 在配置文件里,把經常訪問的路由放在前面,可以提高路由匹配的效率。 2、路由匹配的兩種方式 Annotation 允許在方法的上面用註釋定義方法運行狀態的功能 class UserController extends Controller{ /** * @Ro
  • lazy概念:要用到的時候,再去載入,對於關聯的集合來說,只有當訪問到的時候,才去載入它所關聯的集合,比如一個user對應很多許可權,只有當user.getRights()的時候,才發出select right的語句,在訪問到rights之前,rights是一個PersisitSet對於實體類來說,只
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...