Last active
August 6, 2019 14:52
-
-
Save cesarkohl/1cd2e0d64e85c4f8ff4e9f7c2f9aac5a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| ini_set('display_errors', 1); | |
| ini_set('display_startup_errors', 1); | |
| error_reporting(E_ALL); | |
| class Car { | |
| public $color = 'White'; | |
| public function setColor($color) | |
| { | |
| $this->color = $color; | |
| } | |
| public function getColor() | |
| { | |
| return $this->color; | |
| } | |
| } | |
| $car = new Car(); | |
| echo $car->color; // return White | |
| $car->setColor('Yellow'); | |
| echo $car->getColor(); // return Yellow | |
| //////////////////////////////////////////////////////////////// | |
| class Beetle extends Car { | |
| } | |
| $beetle = new Beetle(); | |
| echo $beetle->color; // return White. The $color is instantiated | |
| // in class Car() and not $color in Beetle() | |
| $beetle->setColor('Green'); | |
| echo $beetle->color; // return Green | |
| echo $beetle->getColor(); // return Green | |
| //////////////////////////////////////////////////////////////// | |
| class BeetleGT extends Beetle { | |
| } | |
| $beetleGT = new Beetle(); | |
| echo $beetleGT->color; // return White. The $color is instantiated | |
| // in class Car() and not $color in Beetle() or BeetleGT() | |
| $beetleGT->setColor('Orange'); | |
| echo $beetleGT->color; // return Orange | |
| echo $beetleGT->getColor(); // return Orange | |
| //////////////////////////////////////////////////////////////// | |
| class Ferrari extends Car { | |
| public $color; // sets value as null | |
| } | |
| $ferrari = new Ferrari(); | |
| echo $ferrari->color; // return null. The $color is instantiated in Ferrari() | |
| $ferrari->setColor('Red'); | |
| echo $ferrari->color; // return Red | |
| echo $ferrari->getColor(); // return Red | |
| //////////////////////////////////////////////////////////////// | |
| class FerrariF40 extends Ferrari { | |
| } | |
| $ferrariF40 = new FerrariF40(); | |
| echo $ferrariF40->color; // return null. The $color is instantiated in Ferrari() | |
| $ferrariF40->setColor('FerrariRed'); | |
| echo $ferrariF40->color; // return FerrariRed | |
| echo $ferrariF40->getColor(); // return FerrariRed |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Article explaining it: https://medium.com/@cesarkohl/public-parameters-in-oop-11a6d5b355a6