[英]Working on php switch-case logic
我正在访问一个db表,该表将读取文本条目以查找字符串...然后基于该字符串创建一个新变量。
来源:
<?php
$haystack = "Additional Licenses: +2 Licenses /br/ Back-up CD-ROM: No";
$needle = "+0";
switch ($needle) {
case '+1':
if (strstr($haystack, $needle)) {
$actpurch = "3";
} else {
break;
}
case '+2':
if (strstr($haystack, $needle)) {
$actpurch = "4";
} else {
break;
}
case '+3':
if (strstr($haystack, $needle)) {
$actpurch = "5";
} else {
break;
}
default:
$actpurch = "2";
break;
}
echo "Activations Purchased: " . $actpurch;
?>
你switch
荷兰国际集团在$needle
,其中有一个固定值"+0"
。 因此,只有您的default
case
会执行。
我不会完全使用开关。 您想要做的是提取数字,您可以使用正则表达式进行提取,请参见PHP手册 。 一个例子:
$haystack = "Additional Licenses: +2 Licenses /br/ Back-up CD-ROM: No";
$licences = 2;
$extra = 0;
if (preg_match('/Additional Licenses: \+(\d+) Licenses/', $haystack, $matches)) {
$extra = intval($matches[1]);
} else {
die('Error: couldn\'t find number of licences');
}
$actpurch = $licences + $extra;
echo $actpurch;
正则表达式将字符串与模式匹配(\\ d +将匹配一个或多个数字)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.