regexp在switch语句中
在PHP开关/ case语句中是否允许使用正则expression式以及如何使用它们?
开关大小写的语句就像if-elseif一样工作。
和if-elseif一样,你也可以使用正则expression式,你也可以在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 }