note 44629 added to keyword.parent
| From: | geoff at hoffmans dot net | Date: | Wed, 11 Aug 2004 13:20:07 +0000 |
| Subject: | note 44629 added to keyword.parent | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-74435@lists.php.net to get a copy of this message | ||
Object-oriented programming examples are always so obscurely written, with $A and $foo. Here's
something that I came up with that is a more concrete, real-world example.
<?php
/**********************************************\
* Demonstration of Object Inheritance in PHP4
* www.salientdigital.com
\**********************************************/
// You would most likely place these two
// class definitions in an include file.
// basic class others inherit from
class basic{
var $schooltype;
var $level;
function basic( $lv ){
$this->schooltype = "High School";
$this->level = $lv;
}
function hello(){
return "Yo teacher!";
}
function chat(){
return $this->hello() .
" I'm a ". $this->level ." in ". $this->schooltype .".";
}
}
// The advanced class inherits from basic plus has extra features
class advanced extends basic {
var $degree;
var $creditbalance;
// class constructor
function advanced ( $lv, $dg , $cb ) {
// Call the parent class constructor first
// here is where the inheritance takes place
$this->basic($lv); // parent::basic($lv); // works too
$this->schooltype = "College";
$this->degree = $dg;
$this->creditbalance = $cb;
}
function hello(){
// overrides the hello() method defined in basic class
return "Good afternoon, Professor.";
}
function chat(){
// shows why you need the parent:: syntax --
// so you can call it in a method that overrides the base class.
return parent::chat() ."<br>".
" I'm only ". $this->creditbalance .
" credits shy of my ". $this->degree .".";
}
}
// Now that the class definitions are out of the way...
// Here is the answer to
// 'What is the advantage of Object Oriented Programming?'...
// Look at how short and elegant this code is:
$Student1 = new basic("Sophomore");
$Student2 = new advanced("Senior", "MBA", 4);
echo $Student1->chat() ."<br><br>";
echo $Student2->chat() ;
/***** OUTPUT * SHOWN * BELOW ************************\
Yo teacher! I'm a Sophomore in High School.
Good afternoon, Professor. I'm a Senior in College.
I'm only 4 credits shy of my MBA.
\******************************************************/
?>
----
Manual Page -- http://www.php.net/manual/en/keyword.parent.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+44629
Delete -- http://master.php.net/manage/user-notes.php?action=delete+44629&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+44629&report=yes
Search -- http://master.php.net/manage/user-notes.php