title: class_exists when autoload flag is false
body: <p>So, as part of a project, I was considering building a flagging system. The idea behind this would be a cron job that runs daily to determine whether each of a series of flags still applied to a specific object (and if so, save that flag data for the object).</p>
  
  <pre><code>// code stub
  $flags = $this-&gt;getFlags();
  foreach($flags as $flag)
  {
      $className = 'Svc_Flags_'.$flag-&gt;flag_code; 
  
      if(class_exists($className, false)
      {
          (new $className())-&gt;setFlag();
      }
  }
  </code></pre>
  
  <p>And right now, in the dummy code for that class, I have a constructor that echos a simple text message, and the function <code>setFlag()</code> that echos a different text message.</p>
  
  <pre><code>&lt;?php class Svc_Flags_Test extends Svc
  {
  
  public function __construct()
  {
      echo 'construct&lt;br/&gt;';
  }
  
  public function setFlag()
  {
      echo 'set flag&lt;br/&gt;';
  }
  
  }
  </code></pre>
  
  <p>Now, this doesn't work. By that, I mean that I am not seeing either echo.</p>
  
  <p>However, if I do this:</p>
  
  <pre><code>// code stub
  $flags = $this-&gt;getFlags();
  foreach($flags as $flag)
  {
      $className = 'Svc_Flags_'.$flag-&gt;flag_code; 
  
      (new $className())-&gt;setFlag(); // This is the added line of code
  
      if(class_exists($className, false)
      {
          (new $className())-&gt;setFlag();
      }
  }
  </code></pre>
  
  <p>I get the constructor echo, and the <code>setFlag()</code> echo TWICE.</p>
  
  <p>Why is this happening? Now, I'm pretty sure I could just wrap part of this in a <code>try/catch</code> block to get past any errors if a class isn't there, but I'm curious as to why it doesn't seem to find the class unless I explicitly call it before the <code>if</code> statement.</p>