Only accessible/callable by the same, or an inherited class. Here we see a call to a protected method from the global scope being rejected.

<?php
class Bedroom {
    protected $action;

    function __construct() {
        $this->action = 'fun';
    }

    protected function peek() {
        echo $this->action. "\n";
    }
}

class Keyhole extends Bedroom {
    function peek() {
        echo $this->action. "\n";
    }
}

$kh = new Keyhole();
$kh->peek();

$br = new Bedroom();
$br->peek();           /* Doesn't work */
?>
fun
Fatal error: Call to protected method Bedroom::peek() from context 'html' in script.php on line 24