Di dalam konsep pemrograman berorientasi object (OOP), setiap attribut atau function dapat di atur penggunaannya menggunakan keyword public, protected, atau private. Hal ini berguna untuk membatasi penggunaan attribute atau function. Contoh : anda punya sebuah function untuk koneksi ke database dan function tersebut hanya boleh digunakan oleh class yang berhubungan dengan database seperti melakukan query insert, update, delete atau read.
  1. public

     keyword public digunakan untuk attribute / variabel dan function yang bisa di gunakan atau diakses dari class manapun. Sebagai contoh adalah seperti jalan raya yang bisa digunakan oleh siapapun.
    <?php
    class Makhluk_Hidup{
    var $berat;
    public $tinggi;

    function __construct(){

    }
    function bernafas($nama,$alat){
    echo $nama." bernafas dengan ".$alat;
    }
    public function makan($makanan){
    echo "makan ".$makanan;
    }

    }
    ?>
    di atas merupakan contoh class bernama Makhluk_hidup yang memiliki attribute  berat dan tinggi. Pembuatan function tanpa disertai keyword public, protected, atau private secara default akan di anggap sebagai public. Sedangkan attribute dengan keyword var dianggap sebagai public. Contoh penggunaan :

    $hidup = new Makhluk_Hidup();
    $hidup->bernafas('manusia','paru-paru');//work
    $hidup->makan('nasi');// work

  2. private

     keyword private digunakan untuk attribute / variabel dan function yang hanya bisa di gunakan atau diakses dari classitu sendiri. Sebagai contoh, misalnya kita punya celana dalam yang hanya kita yang bisa memakainya sedangkan orang lain tidak boleh menggunakannya. contoh penggunaan :

    <?php
    class Makhluk_Hidup{
    var $berat;
    var $tinggi;

    function __construct(){

    }

    public function bernafas($nama,$alat){
    echo $nama." bernafas dengan ".$alat;
    }

    private function makan($makanan){
    echo "makan ".$makanan;
    }

    }

    class Manusia extends Makhluk_Hidup{

    function __construct(){
    echo "loading bernafas <br/>";
    }
    function makan($makanan){
    $this->makan($makanan);
    }

    }
    $adi = new Manusia();
    $adi->bernafas('adi','paru-paru'); // work
    $adi->makan('nasi');// not work
    ?>
    di atas merupakan contoh penggunaan keyword private. $adi adalah object dari class Manusia yang merupakan class turunan dari class Makhluk_Hidup. kita bisa memanggil function / method bernafas dari object $adi tapi tidak bisa mengakses function makan dari object $adi karena function makan merupakan function private yang hanya bisa di akses oleh class Makhluk_Hidup.

  3. protected

     keyword protected digunakan untuk attribute / variabel dan function yang hanya bisa di gunakan atau diakses dari classitu sendiri dan class turunan. Sebagai contoh, misalnya saya merupakan anak dari bapak saya. Dan bapak saya mempunyai motor dan rumah yang saya tentu bisa menggunakan rumah dan motor kepunyaan bapak saya. Sedangkan tetangga saya tidak bisa menggunakan motor dan rumah milik bapak saya tersebut.Contoh penggunaan :

    <?php
    class Makhluk_Hidup{
    var $berat;
    var $tinggi;

    function __construct(){

    }

    function bernafas($nama,$alat){
    echo $nama." bernafas dengan ".$alat;
    }

    function makan($makanan){
    echo "makan ".$makanan;
    }
    protected function berkembang_biak($cara){
    echo "berkembang biak dengan ".$cara;
    }
    }

    class Manusia extends Makhluk_Hidup{

    function __construct(){
    echo "loading bernafas <br/>";
    }
    function bekerja($tempat){
    echo "bekerja di ".$tempat;
    }
    function biak($cara){
    $this->berkembang_biak($cara);
    }

    }
    class Tumbuhan{

    function tes($cara){
    $this->berkembang_biak($cara);
    }
    }
    $manusia = new Manusia();
    $manusia->biak('beranak');// work
    $padi = new Tumbuhan();
    $padi->tes('beranak');// not work
    class Tumbuhan tidak bisa menggunakan function berkembang_biak() yang berada di class Makhluk_Hidup karena function  berkembang_biak() merupakan function protected yang hanya bisa di akses class Makhluk_Hidup dan class turunan dari class Makhluk_hidup.

        Sekian tulisan saya kali ini. Mohon maaf apabila ada kesalahan penulisan saya lanjutkan di lain kesempatan. Terima kasih.

    referensi :http://php.net/manual/en/language.oop5.visibility.php