Dran denken:
$var = 0777; // funzt, oktal
$var = 0xff; // funzt, hex.
$var = 0b00001111; // funzt, binär.
>
> <http://php.net/manual/en/language.types.integer.php>
Sicher, du hast übrigens in deiner Liste vergessen dass `$var = 511;`{:.language-php} auch funktioniert - aber gegeben ist ein String "0777", und die Frage ist wie man den String dazu bekommt, int(511) zu sein - und (int)"0777" ist ganz einfach der falsche weg, weil hierbei int(777) rauskommt.
In meiner Liste ist aber eine Variante dabei, die das gewünschte Ergebnis liefert.