I was confused recently to realise that I had accidentally called a static method in PHP dynamically from another part of my code; I expected PHP to output warnings when this is done. On closer inspection I discovered that:
- Static functions can be called dynamically
- Dynamic functions generate an E_STRICT error if called statically
This made a lot more sense when I thought about it a bit more and wrote some toy code: