Я только что совершил миграцию, и что-то меня удивило.У меня есть эта функция внутри класса:
function selectEnums($name,$table,$filed, $params = '')
{
$fieldName = $name. $this->name;
if(is_array($params) && sizeof($params) > 0)
{
foreach($params as $var => $newValue)
{
$$var = $newValue;
}
}
$res = $this->getEnums($table,$field, $this->db);
$this->debug('res after getEnums');
$this->debug($res);
$params['options'] = array();
foreach($res as $v)
{
$params['options'][] = $v;
}
.....
}
Теперь я получаю:
Неустранимая ошибка PHP: Uncaught Ошибка: невозможно использовать смещение строки в качестве массива в ....
в этой строке: foreach($res as $v)
Благодаря предыдущей отладке я на 100% уверен, что $res
является массивом.Теперь вот хитрость: если я изменю переменную с $params
на $parames
, она будет работать просто отлично.Что еще хуже, эта строка работает нормально: if(is_array($params) && sizeof($params) > 0)
и фатальная ошибка выдается на другую строку, где нет ничего общего с $params
.
Так что это работает с этим изменением, купить ПОЧЕМУ ???Есть идеи?Может быть, конфиг php.ini?Зарезервированное слово?Я не нашел его в PHP документах.
Спасибо