3v4l.org

run code in 300+ PHP versions simultaneously
<?php trait LazyGetSet { public function __call($method, $args) { if ((0 === strpos($method, 'get')) && ($ptyName = $this->getLazyPropertyName($method))) { return $this->lazyGet($ptyName, $args); } if ((0 === strpos($method, 'set')) && ($ptyName = $this->getLazyPropertyName($method))) { return $this->lazySet($ptyName, $args); } } private function getLazyPropertyName($method) { $ptyName = lcfirst(substr($method, 3)); if (property_exists($this, $ptyName)) { return $ptyName; } } private function lazyGet($ptyName) { return $this->{$ptyName}; } private function lazySet($ptyName, $args) { $this->{$ptyName} = $args[0]; return $this; } } class MyClass { use LazyGetSet; private $name; } echo (new MyClass())->setName(123)->getName();
Output for git.master, git.master_jit, rfc.property-hooks
123

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