PHP & OOP: Method visibility

This entry is part 10 of 11 in the series PHP & OOP

Class methods may be defined as public, private, or protected.

Methods declared without visibility keyword are defined as public.

<?php

class MyClass
{
    // Declare a public constructor
    public function __construct()
    {
    }

    // Declare a public method
    public function MyPublic()
    {
        echo "I am a public function";
        echo "<br>";
    }

    // Declare a protected method
    protected function MyProtected()
    {
        echo "I am a protected function";
        echo "<br>";
    }

    // Declare a private method
    private function MyPrivate()
    {
        echo "I am a private function";
        echo "<br>";
    }

    // This is public
    function printString()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // Works
echo "--<br>";
// $myclass->MyProtected(); Fatal Error
// $myclass->MyPrivate(); Fatal Error
$myclass->printString(); //Public, Protected and Private work

?>

We look at these 2 statements:

$myclass->MyProtected();

-Fatal Error as MyProtected() is protected and can only be accessed by inherited class.

$myclass->MyPrivate();

Fatal Error as MyPrivate() is a private function and can only be accessed in its own class.

Series Navigation<< PHP & OOP: Visibility
PHP & OOP: Magic Methods >>

Leave a comment

Leave a Reply