3v4l.org

run code in 300+ PHP versions simultaneously
<?php function checkParameters(string $sql) { $countNamed = 0; $countUnnamed = 0; $inQuote = false; for ($i = 0; $i < strlen($sql); ++ $i) { if ($inQuote) { if ($sql[$i] == $quote) { $inQuote = false; continue; } } else { if (in_array($sql[$i], ['"', "'"])) { $quote = $sql[$i]; continue; } } if ($sql[$i] == ':') { $countUnnamed ++; } elseif ($sql[$i] == '?') { $countNamed ++; } } if ($countNamed && $countUnnamed) { throw new Exception("mixed parms in: $sql" . PHP_EOL); } } $sql = "SELECT a, b FROM someTable WHERE a = '?' AND b = :id"; // checkParameters($sql); $sql = "SELECT a, b FROM someTable WHERE a = ? AND b = :id"; // checkParameters($sql); $sql = "SELECT a, b FROM someTable WHERE a = '?' AND b = :id"; checkParameters($sql);
Output for git.master, git.master_jit, rfc.property-hooks
Fatal error: Uncaught Exception: mixed parms in: SELECT a, b FROM someTable WHERE a = '?' AND b = :id in /in/Rc7B6:32 Stack trace: #0 /in/Rc7B6(44): checkParameters('SELECT a, b FRO...') #1 {main} thrown in /in/Rc7B6 on line 32
Process exited with code 255.

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
53.68 ms | 401 KiB | 8 Q