Hola,
Para ser mas purista, $M tendria que ser booleano y pasarle true o false (sin comillas) y darle por defecto $M=false .
Y tambien podrias usar
uniqid() en lugar de time() para crear el hash MD5.
Saludos.
PD: El hash MD5 son 128 bits y 32 caracteres hexadecimales.