Diamond problem (ambiguous in inheritance) https://stackoverflow.com/questions/2064880/diamond-problem Class A, Class B some method here ... print A method, B method ... Question what output and why ? ... If we want class B method print A's method output ... => how to do that ? define final static self accept static method, properties. $this can not.... see more here : https://www.wisdomjobs.com/e-university/object-oriented-programming-in-php-interview-questions.html SQL design Product, Orders, query best sell each month ... In PHP, Overloading is possible http://200-530.blogspot.in/2013/04/oop-magic-methods.html