<?php
trait MyTrait {
public static $foo = 'Zero';
}
class MyClassOne {
use MyTrait;
}
class MyClassTwo {
use MyTrait;
}
MyClassOne::$foo = 'One';
MyTrait::$foo = 'Eklage';
MyClassTwo::$foo = 'Two';
// What will happen? Remember: trait is pseudo copy-paste, not real inheritance!
echo MyClassOne::$foo;
echo MyClassTwo::$foo;
echo MyTrait::$foo;
Deprecated: Accessing static trait property MyTrait::$foo is deprecated, it should only be accessed on a class using the trait in /in/rWtS6 on line 15
OneTwo
Deprecated: Accessing static trait property MyTrait::$foo is deprecated, it should only be accessed on a class using the trait in /in/rWtS6 on line 21
Eklage
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
Deprecated: Accessing static trait property MyTrait::$foo is deprecated, it should only be accessed on a class using the trait in /in/rWtS6 on line 15
OneTwo
Deprecated: Accessing static trait property MyTrait::$foo is deprecated, it should only be accessed on a class using the trait in /in/rWtS6 on line 21
Eklage