4 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先,("en" || "EN")在 case 語句評(píng)估為布爾值,在你的情況下 PHP 的 switch case 不能像這樣工作case ('dn' || 'DN'):
其次,在您的代碼中,在break之后有一個(gè)不可訪問的return,換句話說,您不需要在break之后放置,return因此正確的代碼將是這樣的
public static function getToolTip(){
$stringCode = "en";
switch ($stringCode){
case 'de':
case 'DE':
return self::VELOCCI_DE['tooltip'];
case 'en':
case 'EN':
return self::VELOCCI_EN['tooltip'];
case 'fr':
case 'FR':
return self::VELOCCI_FR['tooltip'];
case 'es':
case 'ES':
return self::VELOCCI_ES['tooltip'];
case 'in':
case 'IN':
return self::VELOCCI_IN['tooltip'];
default:
return '';
}
}

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
在php中我們使用或這樣的情況
case "de":
case "DE":
return self::VELOCCI_DE['tooltip'];
break;
case "en":
case "EN":
return self::VELOCCI_EN['tooltip'];
break;

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
我將使用參數(shù)設(shè)置此方法,如下所示,并更改名稱$stringCode:
public static function getToolTip(string $languageCode = 'EN'){
}
在哪里$languageCode替換$stringCode = "en";您的原始方法。
如果您不想要默認(rèn)參數(shù),可以將其設(shè)置為null; 也為了減少案例的數(shù)量,您可以case以一致的方式測(cè)試每個(gè)案例,例如:
public static function getToolTip(string $languageCode = NULL){
$languageCode = strtoupper($languageCode);
## Rest of your code from here
}
所以測(cè)試使用strtoupper看起來像:
public static function getToolTip(string $languageCode = 'EN'){
switch (strtoupper($languageCode)){
case 'DE':
return self::VELOCCI_DE['tooltip'];
case 'EN':
return self::VELOCCI_EN['tooltip'];
case 'FR':
return self::VELOCCI_FR['tooltip'];
case 'ES':
return self::VELOCCI_ES['tooltip'];
case 'IN':
return self::VELOCCI_IN['tooltip'];
default:
return '';
}
}

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
請(qǐng)注意,開關(guān)/外殼進(jìn)行松散比較(來自手冊(cè))。
var_dump('en' == ('de' || 'DE'));結(jié)果bool(true)。
所以你的第一個(gè)案例總是令人滿意的。(對(duì)于除 '0' 或空字符串之外的任何字符串輸入都相同。)
某種映射在這里可能更容易:
<?php
class Texts
{
const VELOCCI_DE = ['tooltip' => 'Actung'];
const VELOCCI_EN = ['tooltip' => 'Attention'];
public static function getToolTip($code)
{
$code = strtolower($code);
return [
'de' => self::VELOCCI_DE['tooltip'],
'en' => self::VELOCCI_EN['tooltip'],
][$code] ?? '';
}
}
echo Texts::getToolTip('en');
輸出:
Attention
然而,這可能會(huì)很快變得笨拙。如果您有多個(gè)鍵和翻譯要處理怎么辦?
- 4 回答
- 0 關(guān)注
- 257 瀏覽
添加回答
舉報(bào)