正規表現はPHP switch/caseステートメントとそれらの使用方法で許可されていますか?
Switch-caseステートメントはif-elseifのように機能します。
if-elseifに正規表現を使用できるだけでなく、switch-caseでも正規表現を使用できます。
if (preg_match('/John.*/', $name)) {
// do stuff for people whose name is John, Johnny, ...
}
としてコーディングすることができます
switch $name {
case (preg_match('/John.*/', $name) ? true : false) :
// do stuff for people whose name is John, Johnny, ...
break;
}
お役に立てれば。
いいえまたは制限されています。たとえば、true
を切り替えることができます。
switch (true) {
case $a == 'A':
break;
case preg_match('~~', $a);
break;
}
これは基本的にif-elseif-else
ステートメント、ただし構文とswitch
の可能性(フォールスルーなど)
はい。ただし、この手法を使用して、スイッチ引数がfalse
に評価されるときの問題を回避する必要があります。
switch ($name) {
case preg_match('/John.*/', $name) ? $name : !$name:
// do stuff
}