I’ve just inherited this code in PHP which seems to do some kind of web service call to googles api. I’m not quite an expert on PHP and there is a few syntax questions I have specifically relating to the following line
$soapClients = &APIlityClients::getClients();
I understand the double “::” as indicating that APIlityClients is a static class but I’m not sure what the “&” in front of APIlityClients means.
When you use an ampersand in front of a variable in PHP, you’re creating a reference to that variable.
Prior to PHP5, when you created an object from a class in PHP, that object would be passed into other variables by value. The object was NOT a reference, as is standard in most other object oriented (Java, C#, etc.) languages.
However, by instantiating a class with an ampersand in front of it, you could create a reference to the returned object, and it would behave like an object in other languages. This was a common technique prior to PHP5 to achieve OOP like effects and/or improve performance.