У меня проблема с 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.
Как мне решить эту ошибку? (Я не хочу использовать статические массивы …)
Основная проблема в том, что константы классов не могут быть массивами (если это не php 5.6 или выше, как указано в bluefirex).
PHP константы, содержащие массивы?
http://php.net/manual/en/language.oop5.constants.php
Других решений пока нет …