Unbelievable PHP limitation of the day

If one defines a class with the member variable:

protected static $bytes = 12582912;

then that's fine. However if one defines it as:

protected static $bytes  = 12*1024*1024; // 12 MB

then that gives a compile error:

Parse error: syntax error, unexpected '*', expecting ',' or ';'

I know of no other language that I've ever programmed (i.e. including BASIC, and C) where you can write a value, but you can't write an expression.

How broken is that!

Putting spaces around the *, or adding brackets around the whole expression, does not help.

(PHP 5.2.0)

P.S. I recently created a nerdy privacy-respecting tool called When Will I Run Out Of Money? It's available for free if you want to check it out.

This article is © Adrian Smith.
It was originally published on 10 Dec 2007
More on: PHP | FAIL | Language Design