Blog
PHP Classes and Objects Examples
Posted on March 22, 2018 in PHP by Matt Jennings
Class Example, Object, and Access Modifiers (Public, Private, Protected) Examples
/*
public - the property or method can be accessed from everywhere. This is default
protected - the property or method can be accessed within the class and by classes derived from that class
private - the property or method can ONLY be accessed within the class
*/
class Person
{
const AVG_LIFE_SPAN = 79;
public $firstName;
public $lastName;
public $yearBorn;
// Constructor function that is called
// whenever an object is instantiated
// from the class
function __construct()
{
$this->firstName = 'Samuel Longhorne';
$this->lastName = 'Clemens';
$this->yearBorn = 1899;
}
public function getFirstName()
{
return $this->firstName . ' ' . $this->getLastName();
}
private function getLastName()
{
return $this->lastName ;
}
protected function kewlPerson()
{
return getFirstName() . ' is a kewl person!';
}
static public function blah1()
{
return 'blah1';
}
static protected function blah2()
{
return 'blah2';
}
}
class DeadPerson extends Person {
public function getDeadPersonInfo() {
// Grabbed $this->firstName and other variables
// from Person class because they're inherited
return $this->firstName . ' ' . $this->lastName . ', ' . $this->yearBorn . ' is now dead!';
}
}
class OtherPerson {
public $randomPersonName;
public function __construct($randomPersonName) {
$this->randomPersonName = $randomPersonName . ': ' . Person::blah1();
}
public function getRandomPerson() {
return $this->randomPersonName;
}
public function protectedTest() {
return Person::blah2();
}
}
// Class instantiation or object creation
$personObj = new Person();
/*
Public method output,
including the private method function call inside the
public method:
'Samuel Longhorne Clemens'
*/
echo '$personObj: ' . $personObj->getFirstName() . PHP_EOL;
// Class instantiation or object creation
// on inherited object
$deadPersonObj = new DeadPerson();
// Inherited class method call
echo '$deadPersonObj: ' . $deadPersonObj->getDeadPersonInfo() . PHP_EOL;
// Another class instantiation, or object creation
// and Person::blah1() is echo out at the end because it's
// accessing a static class and using the double colon operator
$otherPersonObject = new OtherPerson('Billie');
echo $otherPersonObject->getRandomPerson() . PHP_EOL;
/*
Method call below doesn't work because Person::blah2()
method was a static class
*/
echo $otherPersonObject->blah2();
Access Modifiers
<?php
/*
public - the property or method can be accessed from everywhere. This is default
protected - the property or method can be accessed within the class and by classes derived from that class
private - the property or method can ONLY be accessed within the class
*/
class Fruit {
public $name;
public $color;
public $weight;
function set_name($n) { // a public function (default)
$this->name = $n;
}
protected function set_color($n) { // a protected function
$this->color = $n;
}
private function set_weight($n) { // a private function
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>
Leave a Reply