php - I'm getting a "syntax error, unexpected T_VARIABLE" error. I
don't see what I'm doing wrong?
itemprop="text">
I'm getting this error:
"PHP
Parse error: syntax error, unexpected T_VARIABLE in /var/www/vhosts/... on line
66"
Here's my
code:
function combine($charArr,
$k) {
$currentsize = sizeof($charArr);
static $combs = array();
static $originalsize = $currentsize; ###### <--
LINE 66 ######
static $firstcall = true;
if
($originalsize >= $k) {
# Get the First Combination
$comb = '';
if ($firstcall) { //if this is first call
for ($i =
$originalsize-$k; $i < $originalsize; $i++) {
$comb .=
$charArr[$i];
}
$combs[] = $comb; //append the first combo to the
output array
$firstcall = false; //we only want to do this during the first
iteration
}
....
....
}
Any
idea what's wrong?
itemprop="text">
Quoting
rel="noreferrer">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 href="http://fr2.php.net/manual/en/language.variables.scope.php#language.variables.scope.static"
rel="noreferrer">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 rel="noreferrer">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