簡體   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