3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php class EventStatus { const SUCCESS = 'success'; const STOPPED = 'stopped'; const FAILED = 'failed'; private static $validStatuses = [ self::SUCCESS, self::STOPPED, self::FAILED ]; private $status = self::SUCCESS; public function __construct($aStatus = self::SUCCESS) { $this->status = $this->sanitizeAndValidate($aStatus); } public static function __callStatic($aStatus, $arguments = []) { return new static($aStatus); } public function isSuccess() { return ($this->status == static::SUCCESS); } public function isStopped() { return ($this->status == static::STOPPED); } public function isFailed() { return ($this->status == static::FAILED); } private function sanitize($aStatus) { return strtolower(trim($aStatus)); } private function validate($aStatus) { if (!in_array($aStatus, static::$validStatuses)) { throw new DomainException("Invalid event status [$aStatus]"); } } private function sanitizeAndValidate($aStatus) { $sanitized = $this->sanitize($aStatus); $this->validate($sanitized); return $sanitized; } } $status = EventStatus::Failed(); var_dump($status, $status->isSuccess());
Output for 5.4.0 - 7.1.0
object(EventStatus)#1 (1) { ["status":"EventStatus":private]=> string(6) "failed" } bool(false)
Output for 5.1.0 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/iaT52 on line 9
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected '[' in /in/iaT52 on line 9
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/iaT52 on line 5
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_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/iaT52 on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/iaT52 on line 5
Process exited with code 255.