【问题标题】:php for loop: error message if condition not metphp for loop:如果条件不满足,则会出现错误消息
【发布时间】:2013-12-24 03:14:52
【问题描述】:

我的 foreach 循环:

$empty = "You cannot decommission this truck. It is in use."
$msg = "";
foreach ($trucks_to_remove as $truck_id) {
    $truck_id = trim($truck_id);
    if (strlen($truck_id)) {
        $msg .= decom_truck(
            $db,
            $depot_id,
            $truck_id
        );
        }
    else
    {
    echo $empty;
    }
}
echo $msg;

如果不满足条件,则表示此foreach循环之前的sql游标没有返回此truck_id的结果(表示它正在使用中),我只想向页面发送一条简单的消息以提醒用户.

它不必是弹出窗口等。我应该把我的书面或打印声明放在哪里?我假设我会使用一个 else 子句,但是当我在 foreach 循环中添加一个 else 时(见上文),我没有打印到页面上。我还尝试了以下方法:

   else if (strlen($truck_id)) == 0
    {
    echo $empty;
    }

我对 php 很陌生。

【问题讨论】:

  • if (strlen($truck_id)) 应该是 if (strlen($truck_id)>0)
  • @SpiderLinked 它们是等价的,因为0 是假的,而任何其他数字都是真的。
  • 你有没有检查过控制权是否转移到了 else 语句
  • @Barmar 你是对的......没想到那样......
  • 如果var_dump 没有显示任何内容,则您的问题是您发布的代码以外的其他地方。此页面没有显示任何内容正在呈现。这是 AJAX 功能还是普通网页?

标签: php for-loop


【解决方案1】:
$arr1 = array();
if(!$arr1)
{
    echo 'arr1 is emty<br/>';

    $arr2 = array(1, 2);
    if($arr2)
        echo 'arr2 has data';

    exit();
}

【讨论】:

  • 当我使用“trucks_to_remove”作为数组时,这对我不起作用,所以我需要做进一步的研究,看看这可能是什么,然后修改我的问题。
  • 正如 Barman 所问的,这是一个简单的页面还是您通过 ajax 调用 i。你能把你的脚本发到pastebin.com,这样我就可以看到问题出在哪里了。还把你的数组的 var_dump 结果放入
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
相关资源
最近更新 更多