3v4l.org

run code in 300+ PHP versions simultaneously
<?php $_GET['user_id'] = 3; $query[] = "select * from preferences user_id = "; $query[] = $_GET['user_id']; db_exec($query); function db_exec(string|array $query_parts) { if (is_string($query_parts) && !is_literal($query_parts)) { throw new \Exception("Cannot use non literal string as query. Please pass the parts in as an array"); } else { foreach ($query_parts as $query_part) { if (is_string($query_part) && !is_literal($query_part)) { throw new \Exception("non-literal string found [$query_part]"); } else if (is_int($query_part)) { // todo - decide if you want to allow this or not. // I personally wouldn't. } else { // todo - support other types } } var_dump(implode("", $query_parts)); } // rest of db_exec here... }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.4, 8.3.6 - 8.3.25, 8.4.1 - 8.4.12
Fatal error: Uncaught Error: Call to undefined function is_literal() in /in/aCFIT:17 Stack trace: #0 /in/aCFIT(8): db_exec(Array) #1 {main} thrown in /in/aCFIT on line 17
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Fatal error: Uncaught Error: Call to undefined function is_literal() in /in/aCFIT:17 Stack trace: #0 /in/aCFIT(8): db_exec(Array) #1 {main} thrown in /in/aCFIT on line 17
Process exited with code 255.
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /in/aCFIT on line 10
Process exited with code 255.

preferences:
44.28 ms | 409 KiB | 5 Q