a static property should be possible to change. in the PHP it just means 'global' not like in other languages.
A const however is defined as 'constant' which means setting it in a class and not an object context to my knowledge is not possible in a common way. So basically 'namespaced globals'
you could however use 'define' and just set it as a generated global constant. or you could have a look at reflections or the php AST and just create it dynamically.
But since they are 'dynamic' to some degree I would recommend using a static variable.
And __callStatic only works with methods since it's only works within objects and objects have a context hence they are not functions.