<?php
trait A {
public function A() {
echo 'A';
}
}
trait B {
use A;
public function B() {
$this->B();
echo 'B';
}
}
class C {
use A;
use B;
public function C() {
$this->A();
$this->B();
}
}
$c = new C;
$c->C();
A
Fatal error: Out of memory (allocated 31457280 bytes) (tried to allocate 262144 bytes) in /in/SjEo4 on line 13
mmap() failed: [12] Cannot allocate memory
mmap() failed: [12] Cannot allocate memory
Process exited with code 255.
Output for 8.1.2 - 8.1.27
A
Fatal error: Out of memory (allocated 31457280) (tried to allocate 262144 bytes) in /in/SjEo4 on line 13
mmap() failed: [12] Cannot allocate memory
mmap() failed: [12] Cannot allocate memory
Process exited with code 255.
A
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 262144 bytes) in /in/SjEo4 on line 13
Process exited with code 255.
Output for 7.3.32 - 7.3.33, 8.0.13
A
Fatal error: Out of memory (allocated 130023424) (tried to allocate 262144 bytes) in /in/SjEo4 on line 13
mmap() failed: [12] Cannot allocate memory
mmap() failed: [12] Cannot allocate memory
Process exited with code 255.
Output for 7.3.0 - 7.3.31, 7.4.0 - 7.4.33
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; C has a deprecated constructor in /in/SjEo4 on line 18
A
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 262144 bytes) in /in/SjEo4 on line 13
Process exited with code 255.
Fatal error: Trait method A has not been applied, because there are collisions with other trait methods on C in /in/SjEo4 on line 18
Process exited with code 255.
Fatal error: Trait method A has not been applied, because there are collisions with other trait methods on C in /in/SjEo4 on line 26
Process exited with code 255.