diff --git a/code/classes-visibility.php b/code/classes-visibility.php index e69de29..24e1d90 100644 --- a/code/classes-visibility.php +++ b/code/classes-visibility.php @@ -0,0 +1,43 @@ +number = $number; + } +} + +// We cannot set the number using "$phone->number = '123-456-7890'". +// Instead, we can use the public method. +$phone = new Phone(); +$phone->setNumber('123-456-7890'); + +// Making an attribute or function private, gives you more control over the data in the object. +// For example, we could prevent a number being set if it starts with a 7. +class Phone2 +{ + private $number; + + public function setNumber($number) + { + if (substr($number, 0, 1) !== '7') { + $this->number = $number; + } + } +} + +// The "protected" and "private" keywords work a little differently, but we +// will learn more about "protected" when we discuss inheritance. +// However, they both prevent functions and properties from being accessed outside an object. +class Phone3 +{ + private $number; + protected $caller; +} diff --git a/code/classes.php b/code/classes.php index f568ce5..c3e6a19 100644 --- a/code/classes.php +++ b/code/classes.php @@ -24,9 +24,15 @@ $bike = new Bicycle(); $bike->color = 'Blue'; echo $bike->color . "\n"; +// An instance of a class is called an object. Congratulations! +// You are now performing object-oriented development. +$redBike = new Bicycle(); +$redBike->color = 'Red'; +echo $redBike->color . " Bike Object\n"; + // A method is a function attached to the class. You can add a method // to a class by using the "public" keyword followed by the function. A method -// can access the attributes and methods of the instance using the "$this" variable. +// can access the attributes and methods of an object instance using the "$this" variable. class Tricycle { public $color;