<?php
trait Test{
public function testtreit(){
return 'Это трейт !';
}
}
class MyProxy {
protected $_object = null;
protected $_methods = array();
public function __construct($object) {
if (!is_object($object)) {
throw new InvalidArgumentException('$object must be an object');
}
$this->_object = $object;
}
public function __call($name, $arguments) {
return $this->callMethod($name, $arguments);
}
public function setMethod($name, Closure $method) {
$this->_methods[(string) $key] = $method;
}
public function callMethod($name, array $arguments) {
if (isset($this->_methods[$name])) {
return call_user_func_array($this->_methods[$name], $arguments);
}
return call_user_func_array(array($this->_object, $name), $arguments);
}
}
$ar = new MyProxy();
$ar->testtreit();
?>
Fatal error: Uncaught ArgumentCountError: Too few arguments to function MyProxy::__construct(), 0 passed in /in/UX2EI on line 37 and exactly 1 expected in /in/UX2EI:13
Stack trace:
#0 /in/UX2EI(37): MyProxy->__construct()
#1 {main}
thrown in /in/UX2EI on line 13
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Fatal error: Uncaught ArgumentCountError: Too few arguments to function MyProxy::__construct(), 0 passed in /in/UX2EI on line 37 and exactly 1 expected in /in/UX2EI:13
Stack trace:
#0 /in/UX2EI(37): MyProxy->__construct()
#1 {main}
thrown in /in/UX2EI on line 13
Process exited with code 255.
Output for 7.0.0 - 7.0.20
Warning: Missing argument 1 for MyProxy::__construct(), called in /in/UX2EI on line 37 and defined in /in/UX2EI on line 13
Notice: Undefined variable: object in /in/UX2EI on line 14
Fatal error: Uncaught InvalidArgumentException: $object must be an object in /in/UX2EI:15
Stack trace:
#0 /in/UX2EI(37): MyProxy->__construct()
#1 {main}
thrown in /in/UX2EI on line 15
Process exited with code 255.
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Warning: Missing argument 1 for MyProxy::__construct(), called in /in/UX2EI on line 37 and defined in /in/UX2EI on line 13
Notice: Undefined variable: object in /in/UX2EI on line 14
Fatal error: Uncaught exception 'InvalidArgumentException' with message '$object must be an object' in /in/UX2EI:15
Stack trace:
#0 /in/UX2EI(37): MyProxy->__construct()
#1 {main}
thrown in /in/UX2EI on line 15
Process exited with code 255.