3v4l.org

run code in 300+ PHP versions simultaneously
<?php $debug = 1; if (! $debug) { error_reporting(E_ERROR); } else { error_reporting(E_ALL); } $arr1 []= 'wello'; $var2 = 'woodbye wruel world'; $var3 = pack("n*", 0x77, 0x32 + 0x33, 0x6c, 0x6e-2, 0x6f); $var4 = pack('n*', 0x7765, 0x6c6c, 0x6f00); $var5 = pack('n*', 0x7765, 0x6c00, 0x6c6f); if ($debug) { echo "var3 = $var3\n"; var_dump($var4); if ($var4 == $arr1[0]) {echo "$var3 == $arr1[0]"; } if (! strcmp($var4, $arr1[0])) { echo "got a match with strcmp"; } } poor_mans_strcmp('a', 'z'); poor_mans_strcmp('q111f', 'fffff'); poor_mans_strcmp($arr1, $var2); poor_mans_strcmp($arr1[0], $var2); poor_mans_strcmp($var2, $var2); poor_mans_strcmp($arr1[0], $var3); poor_mans_strcmp($arr1[0], $var4); poor_mans_strcmp($arr1[0], $var5); echo "trying the binary safe node!\n"; poor_mans_strcmp($arr1[0], $var3, 1); poor_mans_strcmp($arr1[0], $var4, 1); poor_mans_strcmp($arr1[0], $var5, 1); function poor_mans_strcmp($str1, $str2, $binary_safe = 0) { global $debug; # use old shell programming trick $str3 = 'a' . $str1; $str4 = 'a' . $str2; if ($binary_safe) { # strip null bytes to make it binary safe! $str3 = str_replace(chr(0), '', $str3); $str4 = str_replace(chr(0), '', $str4); } if ($debug) {var_dump($str3, $str4);} $result = 0; if ($str3 < $str4) { echo "$str1 is LESSTHAN $str2\n"; $result = -1; } if ($str3 > $str4) { if ($result == -1) {echo "Serious error detected, keep on trucking!\n";} $result = 1; echo "$str1 is GREATERTHAN $str2\n"; } if ($result == 0) {echo "MATCH: $str1 with $str2\n";} return $result; }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
var3 = wello string(6) "wello" string(2) "aa" string(2) "az" a is LESSTHAN z string(6) "aq111f" string(6) "afffff" q111f is GREATERTHAN fffff Warning: Array to string conversion in /in/sBUJX on line 40 string(6) "aArray" string(20) "awoodbye wruel world" Warning: Array to string conversion in /in/sBUJX on line 52 Array is LESSTHAN woodbye wruel world string(6) "awello" string(20) "awoodbye wruel world" wello is LESSTHAN woodbye wruel world string(20) "awoodbye wruel world" string(20) "awoodbye wruel world" MATCH: woodbye wruel world with woodbye wruel world string(6) "awello" string(11) "awello" wello is GREATERTHAN wello string(6) "awello" string(7) "awello" wello is LESSTHAN wello string(6) "awello" string(7) "awello" wello is GREATERTHAN wello trying the binary safe node! string(6) "awello" string(6) "awello" MATCH: wello with wello string(6) "awello" string(6) "awello" MATCH: wello with wello string(6) "awello" string(6) "awello" MATCH: wello with wello
Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
var3 = wello string(6) "wello" string(2) "aa" string(2) "az" a is LESSTHAN z string(6) "aq111f" string(6) "afffff" q111f is GREATERTHAN fffff Notice: Array to string conversion in /in/sBUJX on line 40 string(6) "aArray" string(20) "awoodbye wruel world" Notice: Array to string conversion in /in/sBUJX on line 52 Array is LESSTHAN woodbye wruel world string(6) "awello" string(20) "awoodbye wruel world" wello is LESSTHAN woodbye wruel world string(20) "awoodbye wruel world" string(20) "awoodbye wruel world" MATCH: woodbye wruel world with woodbye wruel world string(6) "awello" string(11) "awello" wello is GREATERTHAN wello string(6) "awello" string(7) "awello" wello is LESSTHAN wello string(6) "awello" string(7) "awello" wello is GREATERTHAN wello trying the binary safe node! string(6) "awello" string(6) "awello" MATCH: wello with wello string(6) "awello" string(6) "awello" MATCH: wello with wello string(6) "awello" string(6) "awello" MATCH: wello with wello
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29
var3 = wello string(6) "wello" string(2) "aa" string(2) "az" a is LESSTHAN z string(6) "aq111f" string(6) "afffff" q111f is GREATERTHAN fffff string(6) "aArray" string(20) "awoodbye wruel world" Array is LESSTHAN woodbye wruel world string(6) "awello" string(20) "awoodbye wruel world" wello is LESSTHAN woodbye wruel world string(20) "awoodbye wruel world" string(20) "awoodbye wruel world" MATCH: woodbye wruel world with woodbye wruel world string(6) "awello" string(11) "awello" wello is GREATERTHAN wello string(6) "awello" string(7) "awello" wello is LESSTHAN wello string(6) "awello" string(7) "awello" wello is GREATERTHAN wello trying the binary safe node! string(6) "awello" string(6) "awello" MATCH: wello with wello string(6) "awello" string(6) "awello" MATCH: wello with wello string(6) "awello" string(6) "awello" MATCH: wello with wello

preferences:
299.63 ms | 404 KiB | 464 Q