ctype_space不识别仅空白字符串

If I enter whitespace characters only, the query still executes:

$newdisplayname = $_POST['newdisplayname'];
$sessionid = $_SESSION['userid'];

if(!empty($_POST) && isset($_SESSION['userid'])){

    if(strlen($newdisplayname)>=2 && strlen($newdisplayname)<=15 && !ctype_space($newdisplayname) && substr_count(strtoupper($newdisplayname), 'M') < 7 && substr_count(strtoupper($newdisplayname), 'W') < 7){

        // update displayname

        $stmt = $conn->prepare("UPDATE users SET u_displayname=? WHERE u_id=?");
        $stmt->bind_param("si", $newdisplayname, $sessionid);
        $stmt->execute();
        $stmt->close();

        echo "success";

    }

}

Also, if I enter a single space, it executes the query too - how does it also bypass strlen($newdisplayname)>=2?