通过表单GET传递0及其null,但intval(0)为0

HTML:

echo "<form action='procSS.php' method='get'>
";
echo "<button style='color:black;' type='submit' name='start' value='" . $data[0]\ . "'> start </button>";

echo "<button style='color:black;' type='submit' name='stop' value='" . $data[0] . \"'> stop </button>";
echo "</form>";

procSS.php

<?php

$server_conn = stream_socket_client("tcp://127.0.0.1:9000", $errno, $errmsg);

echo intval(0);

if($_GET['start'] == null || $_GET['stop'] == null) {
    echo "its null my dude";
}
if(!empty($_GET['start'])) {
    fwrite($server_conn, "Start ".$_GET['start']."");
    echo "Start ".$GET_['start'];
    fclose($server_conn);
} elseif(!empty($_GET['stop'])) {
    fwrite($server_conn, "Stop ".$_GET['stop']."");
    echo "Stop ".$_GET['stop'];
    fclose($server_conn);
}  elseif(!empty($_GET['reset'])) {
    fwrite($server_conn, "Restart ".$_GET['reset']."");
    fclose($server_conn);
} else {
    echo "???";
}

?>

Okay so this is the url -> http://localhost/procSS.php?stop=0 and it clearly sends 0. the output on the php page is: 0its null my dude???. So I did intval(0) which it returns 0. Next we see that $_GET['stop'] is null even though it passes 0. Why is this and how can I fix it? intval(0) is 0, but passing 0 through get is null

because it both are false 0 is false as well as null is also false when used for condition

use strict type checking(===) like this 0 === null