3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Hoge { private $_name; private $_var; private $_default = "class default"; private function __construct($name) { $this->_name = $name; $this->_var = time(); echo "Side effect"; } } function callPrivateConstructor($class, $args = array()) { $dried = serialize(new stdClass); $fresh = unserialize(str_replace( '8:"stdClass"', strlen($class) . ':"' . $class . '"', $dried )); assert(is_a($fresh, $class)); $ref = new ReflectionClass($class); $constructor = $ref->getConstructor(); $constructor->setAccessible(true); $constructor->invokeArgs($fresh, $args); return $fresh; } $a = callPrivateConstructor("Hoge", array("aaaa")); var_dump($a);

preferences:
26.8 ms | 402 KiB | 5 Q