Home »
PHP »
PHP find output programs
PHP find output programs (Inheritance) | set 2
Find the output of PHP programs | Inheritance | Set 2: Enhance the knowledge of PHP Inheritance by solving and finding the output of some PHP programs.
Submitted by Nidhi, on January 28, 2021
Question 1:
<?php
class A
{
function __construct()
{
echo "Class A constructor called<br>";
}
function fun1()
{
echo "Fun1() called<br>";
}
}
class B extends A
{
function __construct()
{
echo "Class B constructor called<br>";
}
function fun2()
{
echo "Fun2() called<br>";
}
}
$obj = new B();
$obj->fun2();
?>
Output:
Class B constructor called
Fun2() called
Explanation:
In the above program, we created two classes A and B. Class A contains a member functions fun1() and constructor. class B contains a member functions fun2() and constructor. Then we created the object of class B. Then it will call the constructor of class B but it will not call the constructor of parent class like C++. And finally, we called function fun2() that will print "Fun2() called" on the webpage.
Question 2:
<?php
class A
{
function __construct()
{
echo "Class A constructor called<br>";
}
function fun1()
{
echo "Fun1() called<br>";
}
}
class B extends A
{
function __construct()
{
parent::__construct();
echo "Class B constructor called<br>";
}
function fun2()
{
echo "Fun2() called<br>";
}
}
$obj = new B();
$obj->fun2();
?>
Output:
Class A constructor called
Class B constructor called
Fun2() called
Explanation:
In the above program, we created two classes A and B. Class A contains a member functions fun1() and constructor. class B contains a member functions fun2() and constructor. Then we created the object of class B. Then it will call the constructor of class B and we called parent class constructor using the parent keyword explicitly. And finally, we called function fun2() that will print "Fun2() called" on the webpage.
Question 3:
<?php
class A
{
function A()
{
echo "Class A constructor called<br>";
}
function fun1()
{
echo "Fun1() called<br>";
}
}
class B extends A
{
function B()
{
parent::__construct();
echo "Class B constructor called<br>";
}
function fun2()
{
echo "Fun2() called<br>";
}
}
$obj = new B();
$obj->fun2();
?>
Output:
Class A constructor called
Class B constructor called
Fun2() called
Explanation:
In the above program, we created two classes A and B. Class A contains a member functions fun1() and constructor. Class B contains a member functions fun2() and constructor. Then we created the object of class B. Then it will call the constructor of class B and we called parent class constructor using the parent keyword explicitly. And finally, we called function fun2() that will print "Fun2() called" on the webpage.
Question 4:
<?php
class A
{
function A()
{
echo "Class A constructor called<br>";
}
function fun1()
{
echo "Fun1() called<br>";
}
}
class B extends A
{
function B()
{
parent::__construct();
echo "Class B constructor called<br>";
}
function fun2()
{
echo "Fun2() called<br>";
}
}
class C extends B
{
function C()
{
parent::B();
echo "Class C constructor called<br>";
}
function fun3()
{
echo "Fun3() called<br>";
}
}
$obj = new C();
$obj->fun3();
?>
Output:
Class A constructor called
Class B constructor called
Class C constructor called
Fun3() called
Explanation:
In the above program, we created three classes A, B, and C. Class A contains a member functions fun1() and constructor. Class B contains a member functions fun2() and constructor. And Class C contains a member functions fun3() and constructor.
Then we created the object of class C. Then it will call the constructor of class C and it will call the constructor of class B using the parent keyword explicitly. And then class A constructor will be called.
Then finally we called function fun3() that will print "Fun3() called" on the webpage.
Question 5:
<?php
class A
{
function fun1()
{
echo "Fun1() called<br>";
}
function __destruct()
{
echo "Class A destructor called<br>";
}
}
class B extends A
{
function fun2()
{
echo "Fun2() called<br>";
}
function __destruct()
{
echo "Class B destructor called<br>";
parent::__destruct();
}
}
$obj = new B();
$obj->fun2();
?>
Output:
Fun2() called
Class B destructor called
Class A destructor called
Explanation:
In the above program, we created two classes A and B. Class A contains a member functions fun1() and destructor. Class B contains a member functions fun2() and destructor. Then we created the object of class B and called method fun2(). The destructor of class B called when the scope of the object gets finished then the destructor of class A called using parent keyword explicitly.