title: PHP Registry Pattern
body: <p>I've found the piece of code below in several places around the web and even here on Stack Overflow, but I just can't wrap my head around it. I know what it does, but I don't know how it does it even with the examples. Basically it's storing values, but I don't know how I add values to the registry. Can someone please try to explain how this code works, both how I set and retrieve values from it?</p>
  
  <pre><code>class Registry {
  
      private $vars = array();
  
      public function __set($key, $val) {
          $this-&gt;vars[$key] = $val;
      }
  
      public function __get($key) {
          return $this-&gt;vars[$key];
      }
  }
  </code></pre>