3v4l.org

run code in 300+ PHP versions simultaneously
<?php global $wp_test_hooks; if(!is_array($wp_test_hooks)) { $wp_test_hooks = []; } if(!function_exists('add_filter')) { function add_filter( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) { global $wp_test_hooks; $wp_test_hooks[$hook_name][] = [ $callback, $priority, $accepted_args, ]; return true; } } if(!function_exists('add_action')) { function add_action( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) { return add_filter( $hook_name, $callback, $priority, $accepted_args ); } } if(!function_exists('apply_filters')){ function apply_filters( $hook_name, ...$values ) { $value = array_shift($values); global $wp_test_hooks; if(array_key_exists($hook_name, $wp_test_hooks)){ foreach($wp_test_hooks[$hook_name] as $parts){ list($callback, $priority, $accepted_args) = $parts; $value = $callback($value, ...$values); } } return $value; } } if(!function_exists('do_action')){ function do_action( $hook_name, ...$arg ) { global $wp_test_hooks; if(array_key_exists($hook_name, $wp_test_hooks)){ foreach($wp_test_hooks[$hook_name] as $parts){ list($callback, $priority, $accepted_args) = $parts; $callback(...$arg); } } } } add_action('name1', static function(){echo 'In the Action';}); add_filter('name2', static function($originalValue){return 'In the Filter';}); do_action('name1', 'test', 'stuff'); echo PHP_EOL; echo apply_filters('name2', 'test', 'stuff');
Output for git.master, git.master_jit, rfc.property-hooks
In the Action In the Filter

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