title: what happened in PHP8.0.0 to break usort(...(int)(strlen($a)<strlen($b)));?
body: <p>the code</p>
  <pre class="lang-php prettyprint-override"><code>&lt;?php
  $consts = get_defined_constants();
  $consts = array_keys($consts);
  usort($consts,function($a,$b){return (int)(strlen($a)&lt;strlen($b));});
  foreach($consts as $const){
      echo strlen($const).&quot;: &quot;.$const.&quot;\n&quot;;
  }
  </code></pre>
  <p>will, prior to PHP 8.0.0, print all defined constants from longest to shortest, as i expected. 7.3.13 starts with</p>
  <pre><code>62: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
  62: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
  60: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
  60: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
  51: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
  </code></pre>
  <p>but i have no idea what PHP8.0.0 did, it's output starts with:</p>
  <pre><code>9: E_WARNING
  21: FILTER_FLAG_STRIP_LOW
  7: E_ERROR
  26: FILTER_FLAG_STRIP_BACKTICK
  </code></pre>
  <p>you can see it yourself on 3v4l: <a href="https://3v4l.org/MP2IF" rel="noreferrer">https://3v4l.org/MP2IF</a></p>
  <p>so what happened in PHP 8.0.0 to break this code?</p>