繁体   English   中英

在PHP切换案例逻辑上工作

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

?>

由于$needle = "+0"您将始终以

default:
    $actpurch = "2";
    break;

您可能想再次阅读有关switch语句手册页面

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM