3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types=1); interface Hydrator { public function hydrate($incoming, $model) : string; } interface ContextualHydratorExtension extends Hydrator { public function hydrate($incoming, $model, $context = null) : string; } interface ContextualHydrator { public function hydrateWithContext($incoming, $model, $context = null) : string; } class PlsContextHydrator implements Hydrator, ContextualHydratorExtension, ContextualHydrator { public function hydrate($incoming, $model, $context = null) : string { $args_format = rtrim(str_repeat('\'%s\', ', func_num_args()), ', '); $args_formatted = sprintf($args_format, ...func_get_args()); return sprintf("%s(%s)", __METHOD__, $args_formatted); } public function hydrateWithContext($incoming, $model, $context = null) : string { return $this->hydrate($incoming, $model, $context); } } $hydrator = new PlsContextHydrator(); var_dump( $hydrator->hydrate('nah', 'maybes', 'whatever') );
Output for git.master, git.master_jit, rfc.property-hooks
string(56) "PlsContextHydrator::hydrate('nah', 'maybes', 'whatever')"

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:
59.31 ms | 401 KiB | 8 Q