PHP is completely different in that it isn't a prototyping language, it is an object oriented language. Where an object oriented language differs from a prototyping language is that an object oriented language makes a distinction between those objects that the program is going to use and those that form the definitions upon which those objects are based. In an object oriented language such as PHP the definition objects are called classes and each class that you define can either be defined completely from scratch or it can inherit from other already defined classes. You cannot se a class directly in your code though. In order to use a class you must create an object whose type is that class and then your code can work with that object (which will have all of the properties and methods that its class defines).
The basic differences between a prototyping and object oriented language mean that with an object oriented language all of the functionality of a class needs to be defined before you start creating objects of that type and you cannot add additional functionality to the class and have pbjects that are already defined be able to access that additional functionality. The definition and usage steps are completely separated in an object oriented language (hence classes and objects) whereas a prototyping language allows you to add functionality to an object at any time and if added the right way it will then be avaialble to all objects derived from that object even if they have already been created.
This article written by Stephen Chapman, Felgall Pty Ltd.