in_array не работает с константами классов

У меня проблема с in_array, используя недавно введенные константы класса массива. Когда я помещаю в функцию константу класса, которая содержит массив, я получаю предупреждение:

Warning: in_array() expects parameter 2 to be array, unknown given in...

Код:

foreach ($fields as $key => $value) {
if (in_array($key, self::FIELDS)) $this->$key = $value;
}

Константа (внутри класса):

const FIELDS = [
self::FIELD_ID,
self::FIELD_STREET,
self::FIELD_HOUSE_NR,
self::FIELD_POSTCODE,
self::FIELD_CITY,
self::FIELD_PERSONAL_NUMBER,
self::FIELD_SELLER_NAME,
'empty'
];

Самой странной частью этой проблемы является то, что она работает на моем локальном компьютере без каких-либо ошибок / предупреждений (Mac) под управлением PHP 5.6.2, но не на моем сервере, где также работает PHP 5.6.2.

Как мне решить эту ошибку? (Я не хочу использовать статические массивы …)

-1

Решение

Основная проблема в том, что константы классов не могут быть массивами (если это не php 5.6 или выше, как указано в bluefirex).
PHP константы, содержащие массивы?
http://php.net/manual/en/language.oop5.constants.php

0

Другие решения

Других решений пока нет …