title: what does the symbol : mean in php?
body: <p>I used <code>print_r</code> on some variables of a framework to figure out their contents and what i saw was like this </p>
  
  <pre><code>Array (
     [pages:navigation] =&gt; Navigation
     [pages:via] =&gt; via pages
     [item:object:page_top] =&gt; Top-level pages
  )
  </code></pre>
  
  <p>I thought this was ok because i can create arrays like </p>
  
  <pre><code>$ar=array('pages:navigation' =&gt; 'Navigation',
             'pages:via' =&gt; 'via pages');
  </code></pre>
  
  <p>and it would be no problem but when i create this</p>
  
  <pre><code>class student {
     public $name;
     public function get_name()  {
        return $name;
     }
     private $id;
     public function get_id() {
        return $id;
     }
     protected $email;
  }
  
  $s = new student();
  $s-&gt;name="hi";
  print_r($s);
  </code></pre>
  
  <p>I get this:</p>
  
  <pre><code>student Object ( [name] =&gt; hi [id:student:private] =&gt; [email:protected] =&gt; )
  </code></pre>
  
  <p>here the symbol <code>:</code> is automatically inserted for <code>id</code> indicating that it is a member of <code>student</code> and is <code>private</code> but it is not inserted for <code>public</code> member <code>name</code></p>
  
  <p>I cant figure out what does the symbol <code>:</code> actually mean? Is it some kind of namespacing?</p>