3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php final class CommandId { private $name; private $time; public function __construct($name) { $this->time = time(); $this->name = trim($name); if (empty($this->name)) { throw new DomainException('Name must not be empty'); } } public static function fromString($idString) { $parts = explode('_', $idString); if (count($parts) != 2) { throw new DomainException("Unexpected format [$idString]"); } $id = new static($parts[0]); $id->time = (int) $parts[1]; return $id; } public function name() { return $this->name; } public function time() { return $this->time; } public function __toString() { return "{$this->name}_{$this->time}"; } } $one = new CommandId('foo'); $two = new CommandId('foo'); assert($one != $two, 'one should not equal two'); var_dump($one, $two, (string) $one, (string) $two);
Output for 5.4.8 - 5.6.28, hhvm-3.12.0, 7.0.0 - 7.1.0
Warning: assert(): one should not equal two failed in /in/d4iA2 on line 48 object(CommandId)#1 (2) { ["name":"CommandId":private]=> string(3) "foo" ["time":"CommandId":private]=> int(1392271856) } object(CommandId)#2 (2) { ["name":"CommandId":private]=> string(3) "foo" ["time":"CommandId":private]=> int(1392271856) } string(14) "foo_1392271856" string(14) "foo_1392271856"
Output for hhvm-3.10.0
object(CommandId)#1 (2) { ["name":"CommandId":private]=> string(3) "foo" ["time":"CommandId":private]=> int(1392271856) } object(CommandId)#2 (2) { ["name":"CommandId":private]=> string(3) "foo" ["time":"CommandId":private]=> int(1392271856) } string(14) "foo_1392271856" string(14) "foo_1392271856"
Output for 5.3.0 - 5.4.7
Warning: assert() expects exactly 1 parameter, 2 given in /in/d4iA2 on line 48 object(CommandId)#1 (2) { ["name":"CommandId":private]=> string(3) "foo" ["time":"CommandId":private]=> int(1392271856) } object(CommandId)#2 (2) { ["name":"CommandId":private]=> string(3) "foo" ["time":"CommandId":private]=> int(1392271856) } string(14) "foo_1392271856" string(14) "foo_1392271856"
Output for 5.1.0 - 5.2.17
Parse error: syntax error, unexpected T_STATIC, expecting T_STRING or T_VARIABLE or '$' in /in/d4iA2 on line 24
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_STATIC, expecting T_STRING or T_VARIABLE or '$' in /in/d4iA2 on line 24
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CLASS in /in/d4iA2 on line 3
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_CLASS in /in/d4iA2 on line 3
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/d4iA2 on line 3
Process exited with code 255.