Method %s::%s() cannot be static

Description

Some PHP special methods cannot be static. This is the case of all the PHP magic methods, such as the constructor __construct, the destructor __destruct, and all the others: __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __serialize(), __unserialize(), __toString(), __invoke(), __set_state(), __clone() and __debugInfo().

Example

<?php

class X {
     static function __construct() {}
}

?>

Literal Examples

  • Method x::__construct() cannot be static

Solutions

  • Make a static method that can call the method that would be static. Be aware, this will require the building of an object, as a static method does not set $this.