Si te fijas en la documentación de date() .. el parámetro que acepta esa función es un "string" (cadena) y como tal ha de ir entre comillas .. (simples o dobles) .. pero si lo dejas SIN comillas .. PHP en primera instancia intentará interpretarlo como una CONSTANTE (y ese es el "noticice" que te está avisando de que NO es un nombre de constante válido .. Pero hubiera sido que ese w fuese una constante .. ahí no hubieras obtenido el valor esperado y todavía estarías preguntandote el "por qué":
www.php.net/date Código PHP:
<?php echo date("w"); ?>
Recuerda siempre tener a mano el manual oficial de PHP para ver la sintax correcta y tipo de parámetros que acepte la función que uses.
Un saludo,