Hola
Lo del &
te permiten lograr que dos variables "apunten" al mismo contenido
los ::($this::cooked = true;) que dices es el equivalente a ->($this->cooked = true;) y normamente se utilizan para asignar valores en la clase.
Y lo de la @ es un operador de control de errores,cualquier mensaje de error que pudiera generarse a causa de esa expresión será ignorado.
Saludos