訂正

条件1、条件2、条件3のいずれも成り立たないときに
$matched_countが1以上になることってあるのか?

switch (条件) {
 case (条件1): 処理B; break;
 case (条件2): 処理C; break;
 case (条件3): 処理D; break;
 default: 処理A; break;
}