为什么in_array()总是返回false?

时间:2017-05-23 12:55:14

标签: php arrays session boolean

试试这段代码:

您使用带参数id的网址,例如index.php?id=value将被推送到会话中维护的data数组中。

我希望此测试始终返回true。但它总是返回false,为什么?

   if (in_array($id, $_SESSION['data'])) {
        echo "$id in array";
    } else {
        echo "$id not in array";
    }

完整代码:

<?php

    session_start();

     //uncomment when need to clear the data array.
    //if (isset($_SESSION['data'])) {
    //    unset($_SESSION['data']);
    //    die;
    //}

    if (!isset($_SESSION['data'])) {
        $_SESSION['data'] = [];
    }
    if (isset($_GET['id'])) {
        $id = strval($_GET['id']);

        if (!in_array($id, $_SESSION['data'])) {
            $_SESSION['data'][$id] = "data_$id";
        }

        echo '<pre>';
        print_r($_SESSION['data']);
        echo '</pre>';

        // Why does this always return false?
        if (in_array($id, $_SESSION['data'])) {
            echo "$id in array";
        } else {
            echo "$id not in array";
        }
    }?>

1 个答案:

答案 0 :(得分:1)

尝试 isset()功能。

示例: -

any()