## PHP puzzle

So I've decided to make a little PHP puzzle.

The following program contains 3 test cases that you need to make pass. To do that, you should replace `XXX` in the assignments to `\$a`, `\$b` and `\$c` by the right magic values.

``````<?php

function t_1(\$x) {
switch (\$x) {
case 'one': return false;
case 0:     return !is_string(\$x);
default:    return false;
}
}

function t_2(\$x) {
\$k = array('one thousand', 2000, 'a363b8d13575101a0226e8d0d054f2e', 'php');
return in_array(md5(\$x), \$k);
}

function t_3(\$x) {
\$k = '1020304050607';
\$x = (string)\$x;
return strlen(\$x) < strlen(\$k) && \$x == \$k;
}

echo "1..3\n";

\$a = XXX;
echo t_1(\$a) ? 'ok 1' : 'not ok 1', "\n";

\$b = XXX;
echo t_2(\$b) ? 'ok 2' : 'not ok 2', "\n";

\$c = XXX;
echo t_3(\$c) ? 'ok 3' : 'not ok 3', "\n";
``````

If you've done everything right, the output should look like this:

``````1..3
ok 1
ok 2
ok 3
``````

(Thanks to http://www.reddit.com/r/lolphp for inspiration.)

The first one is easy. The second is a little more of a challenge. The third, I'm still thinking about.

OK, here are the answers, base64-encoded so as not to spoil the fun. There are at least two correct answers for `\$a`; and theoretically an infinite number of solutions for `\$b`.

```function reveal (\$answer) {