gpt4 book ai didi

php - 我的 IF 语句正在更改 PHP 中的变量

转载 作者:行者123 更新时间:2023-12-03 23:34:15 25 4
gpt4 key购买 nike

我对整个编程这件事还很陌生,如果这是一个愚蠢的问题,请原谅我。我以前没有遇到过它,这似乎很奇怪。

我正在尝试为蛋糕制作订单。您填写表格并提交,然后它将在新窗口中显示订单,然后您点击“提交”并将其上传到数据库。在提交表单之前,我有一系列 If 语句来检查表单中的错误。这是代码的简化版本。 Writing 是指你想在蛋糕上写什么,Name 是你的名字,cake 是你想要什么类型的蛋糕(默认是“None”)。

try {
$name = trim($params->name);
$cake = trim($params->cake);
$writing = trim($params->writing);
if (strlen($name) < 3){
throw new Exception("Please enter Your name.");
}
if ($cake = "None") {
throw new Exception("Please select a Cake"
}
if ($cake = "Caramel Apple Pie" or $cake = "Pumpkin Pie" or $cake = "Eggnog Pie" and strlen($writing) > 1) {
throw new Exception("We are sorry, but you can't write on any of our specialty pies.");
}

} catch(Exception $x) {
$error = $x->getmessage();
}

所以发生的事情是,当我第一次点击提交时,出现了正确的蛋糕类型,但是当你第二次提交时,出现了错误,说我选择了“无”。所有其他值都在那里并保持不变。我认为问题是第一个“IF”语句(它说“If($cake =“None”))会自动将 $cake 更改为“None”,因为我已经尝试只注释掉该语句,然后它将将蛋糕更改为“焦糖苹果派”,它位于下一个 IF 语句的顶部。

有人知道为什么要这样做吗?以及如何解决?

最佳答案

您使用的是 = 而不是 ==

  • = 是一个赋值运算符,即它改变了我们的变量值。在 if 语句中使用它会导致设置变量并检查结果。
  • ==是比较操作
  • === 也是一个比较运算符,它额外检查类型是否相等。

参见 PHP assignment operatorcomparison operator手册以获取更多信息

补充说明:

  • throw new Exception("Please select a Cake" is missing ); 也是。
  • 在您的示例情况下,使用异常在 $error 中写入消息有点矫枉过正!例如,只需使用 $error = "Please enter Your name."

关于php - 我的 IF 语句正在更改 PHP 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882980/

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