3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * @return mixed[] An array containing two elements: the modified SQL query (string), and the modified params (array). */ function unnameSqlParameters(string $sql, array $params): array { $newParams = []; $newSql = preg_replace_callback( '/:(\w+)/', static function (array $matches) use ($params, &$newParams): string { $name = $matches[1]; if (!array_key_exists($name, $params)) { throw new \RuntimeException("Cannot find parameter value for :{$name}."); } $newParams[] = $params[$name]; return '?'; }, $sql ); return [$newSql, $newParams]; } [$sql, $params] = unnameSqlParameters( 'INSERT INTO table1 (a, b, c) VALUES (:a, :b, :c)', ['a' => 'ValueA', 'c' => 'ValueC', 'b' => 'ValueB'] ); echo $sql, PHP_EOL; print_r($params);
Output for git.master, git.master_jit, rfc.property-hooks
INSERT INTO table1 (a, b, c) VALUES (?, ?, ?) Array ( [0] => ValueA [1] => ValueB [2] => ValueC )

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:
190.82 ms | 405 KiB | 5 Q