очень странно, по скрину все ок, та и у себя код запустил
Разобрался! Это просто эпический пипец, как не повезло. Ошибка в одном символе оказалась! :) Выявил, уже от отчаяния прогоняя код через шестнадцатиричный редактор. И обнаружил, что в месте инициализации переменной символ "с" кодируется правильно, числом 0x63, а там, где вызывается метод у объекта - почему-то вместо 0x63 оказалась последовательность 0xd1 0x81, причем в редакторах во всех это показывается тоже как символ "c". Соответственно, переменная $сpl_item оказалась не переменной $cpl_item, а заново объявленной неинициализированной переменной.