Цитирование руководство (эта страница о статических свойствах, но то же самое относится и к переменным) :
Как и любая другая статическая переменная PHP, статические свойства могут быть только
инициализируется с использованием литерала или
постоянная; выражения не
разрешено . Так что пока вы можете инициализировать
статическое свойство в целое число или
массив (например), вы не можете
инициализировать его в другую переменную, чтобы
возвращаемое значение функции или
объект.
Вы используете это:
static $originalsize = $currentsize;
Который инициализируется выражением, а не константой.
А вот раздел руководства , в котором говорится о статических переменных то же самое:
Статические переменные могут быть объявлены как
видно на примерах выше. Пытаясь
присваивать значения этим переменным, которые
являются результатом выражения воли
вызвать ошибку разбора.
И, на всякий случай, вот о выражениях .
В вашем случае, чтобы избежать этой проблемы, я полагаю, вы могли бы изменить свой код, чтобы он выглядел так:
$currentsize = sizeof($charArr);
static $originalsize = null;
if ($originalsize === null) {
$originalsize = $currentsize;
}
С этим:
- Статическая переменная инициализируется константой
- Если его значение является постоянным, присвойте динамическое значение.