ocurre que hay un método llamado igual que la clase. En este caso método demo y clase demo.
Entonces a crear el objeto con
Código PHP:
$objeto = new demo();
se ejecuta el método demo y despues al llamar al metodo demo
Código PHP:
$objeto->demo();
se vuelve a ejecutar.
Creo que a partir de php5 se utiliza el método
Código PHP:
__construct()
para que este se ejecute al crear el objeto. Pero antes de php5 se utilizaba lo que has realizado, llamar a un método igual que la clase y al crear el objeto se ejecuta aquel método que se llama igual.