how to call parent class method in php
Solution 1
define printItem
as static method and you can use Foo::printItem("Mental Case");
or call it in child method:
public function printItem($string)
{
parent::printItem($string);
echo "This is in class Bar ". $string ."<br />";
}
Solution 2
<?php
class test {
public function __construct() {}
public function name() {
// $this->xname('John');
$this->showName('John');
}
private function showName($name) {
echo 'my name in test is '.$name;
}
}
class extendTest extends test {
public function __construct() {
parent::__construct();
}
private function showName($name) {
echo 'my name in extendTest is '.$name;
}
}
$test = new extendTest();
$test->name();
?>
result: my name in test is John
If we change visibility of the showName method to public or protected then the result of the above will be: my name in extendTest is John
Trialcoder
From PHP -> Ruby on Rails -> NodeJS You can easily reach my mailbox at - [email protected]
Updated on July 09, 2022Comments
-
Trialcoder almost 2 years
This is the working code, but i want to know without using another object(commented
$foo
) how could i useprintItem()
method ofclass Foo
using the$bar
object. New to oop programming concept so may be a weak thing to ask but really unable to locate :(I use scope resolution operator to use
printItem()
ofFoo class
, now my query is when we can use this functionality then what is the use of creating objects ? When to use scope resolution operators in proper coding environment.<?php class Foo { public function printItem($string) { echo "This is in class Foo ". $string ."<br />"; } public function printPHP() { echo "PHP is great "."<br />"; } } class Bar extends Foo { public function printItem($string) { echo "This is in class Bar ". $string ."<br />"; } } //$foo = new Foo; $bar = new Bar; $bar->printPHP(); $bar->printItem("Bar class object"); //Foo::printItem("Mental Case");