Search code examples
phptypesstrpos

strpos() unexpectedly returns false when I try to search for an integer-type value


I'm writing a simple function and for some reason(probably a simple one) it's not working for me.

function check_value($postID) 
{
    $ID = $postID;
    $cookie = $_COOKIE['list_of_IDS'];
    $position = strpos($cookie,$ID);
    echo 'ID:'.$ID.'-Cookie:'.$cookie;
    if ($position !== false)
    {
        echo "ID is in the cookie";
    }
}

In trying to figure out what the problem was I put that echo line above the if statement there to make sure there actually is stuff in the variables.

My problem is that the if statement never prints out, despite the $cookie value containing the sequence of digits in the $ID value.

A $postID is a number 123123.

The $cookie string is usually something like 123123.23422.234234.2342342.234234


Solution

  • Strpos won't work with an int, so you need to cast the ID to a string. Try this:

    $ID = (string)$postID;