Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запутался с return

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
razorg1991
Отправлено: 28 Декабря, 2015 - 21:07:20
Post Id


Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




Помогите, а то совсем уже запутался.

Есть класс

PHP:
скопировать код в буфер обмена
  1.  
  2. class Filereader {
  3.    
  4.     // выбор обработчика для файла
  5.     public function select_action($path_to_file, $file_ext) {
  6.        
  7.         // непосредственный вызов обработчика по расширению файла
  8.         switch ($file_ext) {
  9.             case '.txt':
  10.                 $this->read_txt($path_to_file);
  11.                 break;
  12.             case '.csv':
  13.                 $this->read_csv($path_to_file);
  14.                 break;
  15.             case '.xlsx':
  16.                 $this->read_xslx($path_to_file);
  17.                 break;
  18.         }
  19.        
  20.     }
  21.    
  22.     // чтение из TXT
  23.     public function read_txt($path_to_file) {
  24.        
  25.         //echo 'Чтение txt!';
  26.     }
  27.    
  28.     // чтение из CSV
  29.     public function read_csv($path_to_file) {
  30.        
  31.         //echo 'Чтение csv!';
  32.     }
  33.    
  34.     // чтение из XLSX
  35.     public function read_xslx($path_to_file) {
  36.        
  37.         //echo 'Чтение xslx!';
  38.         // массив для листов
  39.         $sheets = array();
  40.        
  41.         // подключаем класс обработчик
  42.         require_once 'classes/simplexlsx.class.php';
  43.        
  44.         // отправляем файл на обработку
  45.         $xlsx = new SimpleXLSX($path_to_file);
  46.        
  47.         // считаем количество листов в xlsx файле
  48.         $sheetscount = $xlsx->sheetsCount();
  49.        
  50.         // делаем проход по всем листам
  51.         for($i = 1; $i <= $sheetscount; $i++) {
  52.            
  53.             $rows = $xlsx->rows($i);
  54.            
  55.             // проверяем, если лист не пустой
  56.             if(!empty($rows)) {
  57.                
  58.                 // то вносим массив строк в массив листов
  59.                 $sheets[] = $rows;
  60.             }
  61.         }
  62.        
  63.         // возвращаем массив листов
  64.         return $sheets;
  65.        
  66.  
  67.     }
  68. }
  69.  


$xlsx->rows($i) возвращает многомерный массив.


Далее вызываю

PHP:
скопировать код в буфер обмена
  1.  
  2. // создается объект
  3. $this->load->library('filereader');
  4.                 // вызываем обработчик
  5.                 $result = $this->filereader->select_action('./user_files/'.$this->session->tempdata('email').'/tmp/'.$this->upload->data('file_name'), $this->upload->data('file_ext'));
  6.                 echo $result;
  7.  


Но echo $result; ничего не выводит Не понял Т.е. даже не пустой массив print_r($result), а вообще ничего нету.
Правда если в классе Filereader вместо return $sheets; написать echo $sheets; то выводит Array() .

Короче вопрос в следующем, как мне в переменную $result запихнуть результат работы $this->filereader->select_action , т.е. получить на выходе массив
 
 Top
DelphinPRO
Отправлено: 28 Декабря, 2015 - 22:43:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




внутри select_action есть return? нет! Конечно ничего возвращено не будет.

PHP:
скопировать код в буфер обмена
  1.  case '.xlsx':
  2.                 return $this->read_xslx($path_to_file);


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
razorg1991
Отправлено: 29 Декабря, 2015 - 18:24:21
Post Id


Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Сент. 2013  


Помог: 0 раз(а)




DelphinPRO пишет:
внутри select_action есть return? нет! Конечно ничего возвращено не будет.

PHP:
скопировать код в буфер обмена
  1.  case '.xlsx':
  2.                 return $this->read_xslx($path_to_file);



Помогло, спасибо )))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB