


Difference: 1. When rewriting the subclass constructor, PHP does not call the parent class, but Java calls the parent class constructor before the first statement by default; 2. Java allows multiple constructors, and PHP values allow a constructor; 3. The constructor in Java is required, but not in PHP.
The operating environment of this article: Windows 10 system, PHP version 7.1, Dell G3 computer.
What is the difference between the PHP construction method and the Java construction method?
Early PHP did not have object-oriented functions, but with the development of PHP, starting from PHP4, object-oriented functions were also added. PHP's object-oriented syntax evolved from JAVA. It is similar in many places, but it has developed its own characteristics. In terms of constructors, the function with the same name as the class in PHP4 is regarded as a constructor (the same as JAVA). However, this writing method is no longer recommended in PHP5. It is recommended to use __construct as the name of the constructor.
1. When rewriting the subclass constructor, PHP will not call the parent class. JAVA will call the parent class constructor before the first statement by default
JAVA
class Father{ public Father(){ System.out.println("this is fahter"); } } class Child extends Father{ public Child(){ System.out.println("this is Child"); } } public class Test { public static void main(String[] args){ Child c = new Child(); } }
Output result:
this is fahter
this is Child
<?php class Father{ public function __construct(){ echo "正在调用Father"; } } class Child extends Father{ public function __construct(){ echo "正在调用Child"; } } $c = new Child();
Output result:
Calling Child
2. Repeat Loading implementation
JAVA allows multiple constructors with different parameter types and orders. PHP only allows one constructor, but allows default parameters. It cannot implement overloading, but it can simulate the overloading effect.
JAVA code
class Car{ private String _color; //设置两个构造函数,一个需要参数一个不需要参数 public Car(String color){ this._color = color; } public Car(){ this._color = "red"; } public String getCarColor(){ return this._color; } } public class TestCar { public static void main(String[] args){ Car c1 = new Car(); System.out.println(c1.getCarColor()); //打印red Car c2 = new Car("black"); System.out.println(c2.getCarColor()); //打印black } }
PHP code
<?php class Car{ private $_color; //构造函数带上默认参数 public function __construct($color="red"){ $this->_color = $color; } public function getCarColor(){ return $this->_color; } } $c1 = new Car(); echo $c1->getCarColor(); //red $c2 = new Car('black'); echo $c2->getCarColor(); //black
3. The constructor is necessary in JAVA. If there is no constructor, the compiler will automatically add it, but not in PHP. meeting.
4. The constructor of the parent class in JAVA must be called in the first sentence. In PHP, there is no such restriction, and it can even be called after the last sentence of the constructor.
5. You can call another constructor through this(), PHP does not have a similar function.
class Pen{ private String _color; public Pen(){ this("red");//必须放在第一行 } public Pen(String color){ this._color = color; } }
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What is the difference between php constructor and java constructor. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Chinese version
Chinese version, very easy to use

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver Mac version
Visual web development tools
