<?php
trait MyTrait {
protected $attr = self::class . 'Test';
public function test() {
return $this->attr;
}
}
class A {
use MyTrait;
}
class B {
use MyTrait;
}
$a = new A();
$b = new B();
var_dump($a->test());
var_dump($b->test());
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
string(5) "ATest"
string(5) "BTest"
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33
string(5) "ATest"
string(5) "ATest"
Output for 5.6.0 - 5.6.4, 7.0.0
string(11) "MyTraitTest"
string(11) "MyTraitTest"
Output for 5.6.5 - 5.6.16
Process exited with code 139.
Output for 5.5.21 - 5.5.38
Parse error: syntax error, unexpected '.', expecting ',' or ';' in /in/dQ6hM on line 4
Process exited with code 139.
Output for 5.5.0 - 5.5.20
Parse error: syntax error, unexpected '.', expecting ',' or ';' in /in/dQ6hM on line 4
Process exited with code 255.
Output for 5.4.0 - 5.4.45
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) in /in/dQ6hM on line 4
Process exited with code 255.