title: Understanding PHP type coercion
body: <p>I saw this small piece of code that is evading my understanding:</p>
  <pre><code>&lt;?php
  
  $a = '0e462097431906509019562988736854';
  $b = '0e830400451993494058024219903391';
  
  var_dump($a == $b);
  </code></pre>
  <p>Which will output:</p>
  <pre><code>bool(true)
  </code></pre>
  <p>I understand that when using <code>==</code>, PHP will attempt fuzzy comparison, silently converting between types in order to perform the comparison. What I'm <em>not</em> understanding is why PHP seems to think these two strings are the same. I would have thought since <code>$a</code> and <code>$b</code> are strings, that no type conversion would need to take place.</p>
  <p>What am I not understanding?</p>