ISSET和ARRAY_KEY_EXISTS都返回false

So I have some code. It looks like this:

if($_COOKIE['userid']!=null) {
    echo "<input value='" . $_COOKIE['userid'] . "' id = 'userIdField' class = 'proForma' type='text'/> ";
}else
{
    echo "<input value='' id = 'userIdField' class = 'proForma' type='text'/> ";
}

Checking for null is clunky, though, and I wanted to follow best practices. And it looked like those were using isset. Sensible. So I tried it. That code looked like this:

if(isset($_COOKIE['userid'])){//do stuff}

But when that got evaluated, it always came out to false. I was looking at the developer tools, and userid definitely existed, definitely was set, but it was returning false. So I looked around some more, and saw that ISSET can be 'wonky' with $_COOKIE (no explanation of why was provided). The recommendation was that ARRAY_KEY_EXISTS would get me what I wanted. Now, it wouldn't check to see if the value was set, but for my use case, if the cookie name existed, the value would be set and I could proceed.

That code looked like this:

if(array_key_exists("userid", $_COOKIE)){//do stuff}

Also no dice. I tried it with single quotes, no dice.

So. I'm working with PHP version 5.6. What am I doing wrong here?