3v4l.org

run code in 300+ PHP versions simultaneously
<?php $fmt = "%-12s %-20s %-20s %-10s %-5s\n"; function json_cmp($x, $y) { global $fmt; $error = array("-", "FAIL"); printf($fmt, var_export($x, true), str_replace("\n", "", var_export($y, true)), str_replace("\n", "", var_export(json_decode($x), true)), $error[json_last_error() > 0], $error[json_decode($x) !== $y] ); } printf($fmt, "JSON", "Expected", "Actual", "JSON_ERROR", "PASS"); printf("---------------------------------------------------------------------- \n"); // works json_cmp("true", true); // fails - is actually true json_cmp("tRue", NULL); // fails - is actually NULL json_cmp("true ", true); // works json_cmp("[true ] ", array(true)); json_cmp("[ true ] ", array(true)); json_cmp("[true] ", array(true)); // works, even though the non-array version fails json_cmp("[tRue]", NULL); json_cmp("0", 0); json_cmp("1", 1); json_cmp("false", false); json_cmp("'foo'", NULL); json_cmp('"foo"', "foo"); json_cmp('1.123', 1.123); json_cmp('1.123 ', 1.123); json_cmp(' 1.123', 1.123); json_cmp('42', 42); json_cmp('42 ', 42); json_cmp(' 42', 42); json_cmp(".123", 0.123);

preferences:
37.39 ms | 402 KiB | 5 Q