gpt4 book ai didi

php - 在 php 中切换条件情况

转载 作者:行者123 更新时间:2023-12-02 21:05:45 24 4
gpt4 key购买 nike

我使用 javascript 将案例发送到 ajax 函数。这些案例取自链接 ID。例如,如果用户单击此链接: <a id="answer-yes-123">click this</a>javascript 会将 id 分成 3 部分,并将中间部分“yes”作为 case 发送给 ajax。大多数情况下,ajax接收到case后,如果有则执行此操作,如果没有则执行此操作。

switch ($case) {
case 'yes' :
$assignment->add();
break;
case 'no' :
$assignment->remove();
break;

有一个异常(exception)——数值情况。如果链接的中间部分是数字,我不知道如何进行切换语句。可能有无限个不同的数字,我无法将每个数字都作为一个案例,如何制定像 if(is_int($case)) 这样的条件作为一个案例?

最佳答案

switch default: 情况下,您可以测试 is_int():

switch ($case) {
case 'yes' :
$assignment->add();
break;
case 'no' :
$assignment->remove();
break;
default:
// Determine the numeric value however you need to
// is_int(), is_numeric(), preg_match(), whatever...
if (is_int($case)) {
// numeric stuff
}
}

这在逻辑上有点奇怪,因为 default: 通常用于如果没有其他条件满足就执行此操作条件。但就您而言,如果您不需要进一步划分数字大小写,那么它就可以工作。请务必在代码中清楚地注释它,以便在六个月后回顾时记住为什么这样做。

评论后更新:

由于您已经使用了 default:,我相信您实际上可以在 case 内使用表达式。这需要更清晰的评论,因为这不是常见的做法,并且有点违背 switch 的目的:

switch ($case) {
case 'yes' :
$assignment->add();
break;
case 'no' :
$assignment->remove();
break;
// This actually works, but is highly weird.
// One of those things I can't believe PHP allows.
// is_int(), is_numeric(), preg_match(), whatever...
case is_int($case):
// Numeric stuff
break;
default:
// default stuff
}

关于php - 在 php 中切换条件情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12180004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com