“unexpected T_PAAMAYIM_NEKUDOTAYIM” on one computer but not another with PHP 5

StackOverflow https://stackoverflow.com/questions/3679717

  •  02-10-2019
  •  | 
  •  

Question

My local computer runs PHP 5.3.2, while my server runs 5.2.5. I get

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

with

$productsIterator = $productModule::load(Phlex_Db_Order::Asc('name'));

I assume the error happens because PHP 5.2.5 doesn't support $stringClassName::methodName() syntax.

Does anyone know either 1) a workaround or 2) some other reason this is happening?

Was it helpful?

Solution

One workaround will be

 call_user_func(array($productModule, "load"), Phlex_Db_Order::Asc('name'));

or, according to the manual since 5.2.3:

 call_user_func($productModule."::load", Phlex_Db_Order::Asc('name'));

Only one thing to note:

the parameters for call_user_func() are not passed by reference.

And for completeness' sake, you are right, "dynamic" calling of static methods was added in 5.3.0. From the PHP 5 change log:

Added support for dynamic access of static members using $foo::myFunc(). (Etienne Kneuss)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top