GET 切换到字符串

GET switch to string

所以我从我的 $_GET 中得到一个值,例如 403,我正在邮寄它。但我想如果收到 returns 403 它将 return sent 发送到邮件中。

   <?php
require_once 'vendor/autoload.php';

switch($_GET['status'])
{
    case 403:
        echo 'sent';
        break;
}
switch($_GET['status'])
{
    case 404:
        echo 'delivered';
        break;
}

if (!empty($_GET['MsgId'])) {
    $transport = (new Swift_SmtpTransport('xxx', xxx))
        ->setUsername('xxx')
        ->setPassword('xxx');

    $mailer = new Swift_Mailer($transport);

    $message = (new Swift_Message('Status SMS ' . $_GET['MsgId'] . '.'))
        ->setFrom(['xxx' => 'xxx'])
        ->setTo(['xxx' => 'xxx', 'xxx' => 'xxx'])
        ->setBody("ID Wiadomości : " . $_GET['MsgId'] . "Status Wiadomości" . $_GET['status'] . ".");

    $result = $mailer->send($message);

    echo 'OK';
}
else {
    echo 'Coś nie śmigło.';
}
exit;

Switch 对我不起作用。

您没有使用 echo 更改全局变量 $_GET['status'],我认为您不应该这样做,请改用变量:

require_once 'vendor/autoload.php';
// we set a variable to hold the status code
$status = '';
switch($_GET['status'])
{
    case 403:
        $status =  'sent';
        break;
    case 404:
        $status = 'delivered';
        break;
}


if (!empty($_GET['MsgId'])) {
    $transport = (new Swift_SmtpTransport('xxx', xxx))
      ->setUsername('xxx')
      ->setPassword('xxx');

    $mailer = new Swift_Mailer($transport);

    $message = (new Swift_Message('Status SMS ' . $_GET['MsgId'] . '.'))
      ->setFrom(['xxx' => 'xxx'])
      ->setTo(['xxx' => 'xxx', 'xxx' => 'xxx'])
      // and here you use that variable we prepared :)
      ->setBody("ID Wiadomości : " . $_GET['MsgId'] . "Status Wiadomości" . $status . ".");

    $result = $mailer->send($message);

    echo 'OK';
 }
 else {
     echo 'Coś nie śmigło.';
 }
 exit;

你在这里:

将从 $_GET 收到的值转换为整数并添加 default 大小写值。

switch((int)$_GET['status'])
{
  case 403:
    echo 'sent';
    break;

  case 404:
    echo 'delivered';
    break;

 default:
    echo 'unknown status';
    break;
}