title: Why did PHPMailer just change from using dynamic function calls to call_user_func()?
body: <p>While vetting the latest update to PHPMailer (PHP library for sending e-mails), I noticed this change:</p>
  <pre><code>return $patternselect($address);
  </code></pre>
  <p>Into:</p>
  <pre><code>return call_user_func($patternselect, $address);
  </code></pre>
  <p>At first, I had to make sure that I wasn't looking at this in a &quot;reverse&quot; view, which I wasn't; the <code>call_user_func</code> change is the new code -- not the old. I also noticed the same being done in a different place of the code.</p>
  <p>So, they decided to stop using the nice &quot;new&quot; syntax for dynamically calling a function and instead changed it into the old <code>call_user_func</code> syntax.</p>
  <p>Why? Am I missing something? Wasn't the first code shown here (which is what I always use) an improvement to PHP which made it nicer to call functions dynamically without having to use <code>call_user_func</code> in your code? Why would they &quot;go back&quot; to the old way?</p>
  <p>It's not like this was just added to PHP or anything, so it can't be a case of a buggy, bleeding-edge feature which &quot;isn't quite ready yet&quot;.</p>
  <p>PS: Note that I'm not asking you to look into the brains of the PHPMailer developer(s), but to offer me an explanation as to why anyone would want to actively do this once they had actually used the better (or so I thought?) way.</p>