<?php
class integer {
private $value;
public function __construct(int $value)
{
$this->value = $value;
}
public static function __invoke(int ...$value) : int
{
if (count($value) === 1)
$this->value = $value[0];
else
throw new Exception('Multiple values given.');
return $this->value;
}
}
$testi = new integer(1);
$testi(2);
Warning: The magic method __invoke() must have public visibility and cannot be static in /in/eYIPu on line 11
Fatal error: Uncaught Error: Using $this when not in object context in /in/eYIPu:14
Stack trace:
#0 /in/eYIPu(22): integer::__invoke(2)
#1 {main}
thrown in /in/eYIPu on line 14
Process exited with code 255.
Output for 5.6.0 - 5.6.40
Warning: The magic method __invoke() must have public visibility and cannot be static in /in/eYIPu on line 11
Parse error: syntax error, unexpected ':', expecting ';' or '{' in /in/eYIPu on line 11
Process exited with code 255.
Output for 5.5.0 - 5.5.38
Warning: The magic method __invoke() must have public visibility and cannot be static in /in/eYIPu on line 11
Parse error: syntax error, unexpected '.', expecting '&' or variable (T_VARIABLE) in /in/eYIPu on line 11
Process exited with code 255.