[英]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.