Quoting the manual (that page is about static properties, but the same applies for variables) :
Like any other PHP static variable, static properties may only be
initialized using a literal or
constant; expressions are not
allowed. So while you may initialize
a static property to an integer or
array (for instance), you may not
initialize it to another variable, to
a function return value, or to an
object.
You are using this :
static $originalsize = $currentsize;
Which is initializing with an expression -- and not a constant.
And here's the manual's section that says quite the same about static variables :
Static variables may be declared as
seen in the examples above. Trying to
assign values to these variables which
are the result of expressions will
cause a parse error.
And, just in case, here's about expressions.
In your case, to avoid that problem, I suppose you could modify your code, so it looks like this :
$currentsize = sizeof($charArr);
static $originalsize = null;
if ($originalsize === null) {
$originalsize = $currentsize;
}
With that :
- The static variable is initialized with a constant
- If its value is the constant one, assign the dynamic value.
No comments:
Post a Comment