使用 php 我在 foreach 中遇到 if elseif else 语句有问题

Posted

技术标签:

【中文标题】使用 php 我在 foreach 中遇到 if elseif else 语句有问题【英文标题】:Using php I have trouble with if elseif else statements inside a foreach 【发布时间】:2020-04-18 00:02:50 【问题描述】:

很抱歉打扰您,但在编码方面我是初学者,我有点卡住了。

我已经在网上搜索并尝试了多个建议(还有一些在此处发布的建议),但总是失败。

简短说明:

我正在 repl.it 中处理一个项目 -> https://php--olvier79.repl.co 我有一个 index.php 在那个 index.php 里面我有一个 foreach 循环。 foreach 循环工作正常,并在提交后在页面上打印我想要的输出。

foreach ($_POST as $name => $value)

  print "$name: $value<br />";

当我想使用 if、elseif 和 else 语句清理输出时,问题就开始了;

我尝试了多种建议,但这是我目前坚持的建议:

foreach ($_POST as $name => $value)
  if ($value = "Submit")
  
    print " Data received Processing";
  
    elseif ($value = "")
    
      print "";
    
      else
      
        print "$name: $value<br />";
      

任何帮助将不胜感激。

【问题讨论】:

请查看meta.stackexchange.com/questions/22186/…,以便格式化代码。 【参考方案1】:

您似乎在条件语句中使用了赋值运算符,而您可能打算检查是否相等。

赋值运算符(单个=):$variable = 1。表示您将整数 1 分配给变量 $variable

比较运算符(双重或三重=):$variable === 1。是评估变量$variable 是否(真正)等于整数1 的语句,从而产生truefalse 表达式。

所以在你的代码中:

if ($value = "Submit") 
   // $value now holds the string "Submit", which is 'truthy', and evaluates to 'true'. This code block will always be executed.

虽然您可能打算:

if ($value === 'Submit') 
   // Execute this code block if $value is truly equal to the string `Submit`.

【讨论】:

以上是关于使用 php 我在 foreach 中遇到 if elseif else 语句有问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP foreach 删除数组元素

使用 PHP 在电子邮件中发送多个附件

foreach 相当于 jquery 中的 php?

PHP - 提交日期/时间/从foreach循环中选择输入值到$ _POST不返回任何内容

从包含数组的 foreach PHP 插入数据

嵌套的 foreach 循环使用 if 条件创建重复记录 - PHP Laravel 8