Method 2 of developing large-scale PHP projects using object-oriented programming in PHP_PHP Tutorial

WBOY
Release: 2016-07-13 17:28:13
Original
853 people have browsed it

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 its 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 a new class from two or more classes.
You can redefine a method in a derived class. If we redefine the getX method in the "Another" class, we cannot use
to use the getX method in "Something". If you declare a data member in a derived class with the same name as the base class, then when you deal with it,
will "hide" the base class's data member.
You can define constructors in your class. The constructor is a method with the same name as the class name. It will be called
when you create an object of the class, for example:
------------------ -------------------------------------------------- ------------
class Something { var $x;
function Something($y) {
$this->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
 Default parameters use C++, So you can't ignore the value of Y and give X a default parameter. The parameters 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 do it in the constructor of the derived class. Display call. This is possible because all parent class methods are available in the derived class.
----------------------------------------------- ----------------------------------
function Another() { $this->y=5;
$this->Something();
//Display 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 to ensure that the base class is not instantiable. , now adds 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.

http://www.bkjia.com/PHPjc/531818.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/531818.htmlTechArticleAuthor: Luis Argerich Translator: limodou The object of Another class now has all the data of the parent class (Something) members and methods, and also adds its own data members and methods. You...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template