Object-oriented programming in PHP: Methods for developing large-scale PHP projects (2) Author: Luis Argerich Translator: limodou The object of the "Another" class now has all the data members and methods of the parent class (Something), and also adds own data members and methods. You can use $obj2=new Something; $obj2->setX(6); $obj2->setY(7); PHP does not support multiple inheritance yet, so you cannot derive new ones from two or more classes Class comes. You can redefine a method in a derived class. If we redefine the getX method in the "Another" class, we cannot use the getX method in "Something". If you declare a data member in a derived class with the same name as the base class, it will "hide" the base class data member when you deal with it. You can define constructors in your class. The constructor is a method with the same name as the class name, which is called when you create an object of the class, for example: ------------------------- -------------------------------------------------- ----- x=$y; } function setX($v) { $this->x=$v; } function getX() { return $this->x; } } ?>--- -------------------------------------------------- -------------------------- So you can create an object by: $obj=new Something(6); The constructor will automatically Assign 6 to the data variable x. Constructors and methods are normal PHP functions, so you can use default parameters. function Something($x="3",$y="5") Then: $obj=new Something(); // x=3 and y=5 $obj=new Something(8); // x=8 and y=5 $obj=new Something(8,9); // x=8 and y=9 The default parameter uses the C++ method, so you cannot ignore the value of Y and give X a default parameter. The parameter is Values are assigned from left to right. If the parameters passed in are less than the required parameters, the default parameters will be used. When an object of a derived class is created, only its constructor is called, and the constructor of the parent class is not called. If you want to call the constructor of the base class, you must explicitly call it in the constructor of the derived class. This is possible because all parent class methods are available in the derived class. -------------------------------------------------- ------------------------------- y=5; $this->Something(); //Show calling base Class constructor} ?>-------------------------------------------------- ------------------------------------ A good mechanism for OOP is to use abstract classes. Abstract classes cannot be instantiated and can only provide an interface to derived classes. Designers often use abstract classes to force programmers to derive from a base class, thus ensuring that the new class contains some desired functionality. There is no standard method in PHP, but: If you need this feature, you can define a base class and add a "die" call after its constructor, thus ensuring that the base class is not instantiable. Now Add a "die" statement after each method (interface), so if a programmer does not override the method in a derived class, an error will be raised. And because PHP is untyped, you may need to confirm that an object is a derived class from your base class, then add a method in the base class to define the identity of the class (return some kind of identification id), and in your Check this value when receiving an object parameter. Of course, if an evil programmer overrides this method in a derived class, this method will not work, but generally the problem is found in lazy programmers, not evil programmers. Of course, it's nice to be able to keep the base classes invisible to programmers, who can just print out the interfaces and do their job. There is no destructor in PHP. Reprinted from PHPBuilder.com