私は2文字以下の単語を削除する機能を持っています。スイッチを使用すると、私の機能が動作しないのはなぜですか?
$words = array("ӯ","ӯро","ӯт","ғариб","афтода","даст", "ра");
delLess($words, 3);
// Output
Array
(
[1] => ӯро
[3] => ғариб
[4] => афтода
[5] => даст
)
しかし、この更新されたバージョンでは動作しません:
機能を使用してfunction delLess2($array, $less){
$english = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
return preg_grep('~\A[^'.$english.']{'.$less.',}\z~u', $array);
}
を:最初のバージョンが動作しているコードで、私はエラーを持っている
function delLess(&$array, $less = 0, $lang = FALSE)
{
$english = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
$russian = "ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
define(ENGLISH, $english);
define(RUSSIAN, $russian);
switch ($lang)
{
case ENGLISH:
return preg_grep('~\A[^'.ENGLISH.']{'.$less.',}\z~u', $array);
break;
case RUSSIAN:
return preg_grep('~\A[^'.RUSSIAN.']{'.$less.',}\z~u', $array);
break;
default:
return false;
}
}
を?どのように修正することができますか?
あなたは '$のlang'をvar_dumpedことがありますか? + '$ lang'のデフォルト値はブール値ではなく、あなたのデフォルト言語であるべきです –
$ langとして何を渡すと思いますか?この更新されたコードをどのように呼び出したかの例を示すことができます。 –
私の答えをチェック – delboy1978uk