Насколько я шарю в английском, если true возвращаемый объект будет конвертирован в ассоциативный массив.
Как тогда объяснить что без true, когда должен получится объект, код работает.
if($fotoname = json_decode($sqlrow['fotoname']){
if(is_array($fotoname) && count($fotoname) == 9){
Вот как я понимаю примерно, то что ты писал ни первый ни второй вариант не работает.
if($fotoname = json_decode($sqlrow['fotoname'], true) && is_array($fotoname)){
if(is_array($fotoname) && count($fotoname) == 9){
if($fotoname = json_decode($sqlrow['fotoname'], true) !== null && is_array($fotoname)){
if(is_array($fotoname) && count($fotoname) == 9){
Неизвестный $fotoname