Just to be clear: I have no problem with static properties and I use them quite frequently myself. I personally wouldn’t use them on a Config, since the shared instance is already ensuring your file is only loaded once, but that’s up to you.
What I meant was I don’t like *accessing static properties from an instance*. Notice the difference with this from my example above:
$config = config('My_config');
// intermediate code here
echo $config::$users_array[0];
This is allowed in PHP but it adds a layer of uncertainty because it isn’t apparent which class you are accessing. My example above explicitly references the class so you’re certain. Instance access adds nothing except guaranteeing hat your constructor has been run, but there are already better ways to verify the static properties have been filled (like a static accessor method to private properties).