I have a desire to store an object as a property of a class. I then want to be able to call static methods on that class by directly referencing the property.
Consider t
The error that syntax will give you is:
Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)
However it will work in PHP 7 thanks to the Uniform Variable Syntax RFC. All prior versions will require the intermediate variable.
The reason it fails on $results = $this->models->myModel::all();
is because the public property $models from myClass does not have a property myModel (since it's NULL from start), which you try to access by ->myModel. As you stored an instance of myModel inside $models non existing instance myModel, it's probably not properly created. You need to fix this $this->models->myModel = new myModel;
to $this->models = new myModel;
as well, since $models is not an object with a property myModel but you tried to access ist. Then, $this->models directly points to the object myModel and you can access the static method by $this->models::all().