3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php class Route { private $path; private $name; private $requirements = array(); private $options = array(); private $defaults = array(); private $host; private $methods = array(); private $schemes = array(); private $condition; /** * Constructor. * * @param array $data An array of key/value parameters. * * @throws \BadMethodCallException */ public function __construct(array $data) { if (isset($data['value'])) { $data['path'] = $data['value']; unset($data['value']); } foreach ($data as $key => $value) { $method = 'set'.str_replace('_', '', $key); if (!method_exists($this, $method)) { throw new \BadMethodCallException(sprintf("Unknown property '%s' on annotation '%s'.", $key, get_class($this))); } $this->$method($value); } } /** * @deprecated Deprecated in 2.2, to be removed in 3.0. Use setPath instead. */ public function setPattern($pattern) { $this->path = $pattern; } /** * @deprecated Deprecated in 2.2, to be removed in 3.0. Use getPath instead. */ public function getPattern() { return $this->path; } public function setPath($path) { $this->path = $path; } public function getPath() { return $this->path; } public function setHost($pattern) { $this->host = $pattern; } public function getHost() { return $this->host; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } public function setRequirements($requirements) { $this->requirements = $requirements; } public function getRequirements() { return $this->requirements; } public function setOptions($options) { $this->options = $options; } public function getOptions() { return $this->options; } public function setDefaults($defaults) { $this->defaults = $defaults; } public function getDefaults() { return $this->defaults; } public function setSchemes($schemes) { $this->schemes = is_array($schemes) ? $schemes : array($schemes); } public function getSchemes() { return $this->schemes; } public function setMethods($methods) { $this->methods = is_array($methods) ? $methods : array($methods); } public function getMethods() { return $this->methods; } public function setCondition($condition) { $this->condition = $condition; } public function getCondition() { return $this->condition; } } class Route2 extends Route { public function setFooBar($d) { echo $d; } } $d = new Route2(array('foo_bafr' => 'test'));
Output for 7.0.0 - 7.1.0
Fatal error: Uncaught BadMethodCallException: Unknown property 'foo_bafr' on annotation 'Route2'. in /in/3OciR:32 Stack trace: #0 /in/3OciR(154): Route->__construct(Array) #1 {main} thrown in /in/3OciR on line 32
Process exited with code 255.
Output for hhvm-3.10.0 - 3.12.0
Fatal error: Uncaught exception 'BadMethodCallException' with message 'Unknown property 'foo_bafr' on annotation 'Route2'.' in /in/3OciR:32 Stack trace: #0 /in/3OciR(154): Route->__construct() #1 {main}
Process exited with code 255.
Output for 5.3.0 - 5.6.28
Fatal error: Uncaught exception 'BadMethodCallException' with message 'Unknown property 'foo_bafr' on annotation 'Route2'.' in /in/3OciR:32 Stack trace: #0 /in/3OciR(154): Route->__construct(Array) #1 {main} thrown in /in/3OciR on line 32
Process exited with code 255.