За последние 24 часа нас посетил 35531 программист и 1819 роботов. Сейчас ищет 831 программист ...

Реализация интерфейса парсера: фатальная ошибка

Тема в разделе "PHP для новичков", создана пользователем Drobotko Taras, 19 мар 2018.

  1. Drobotko Taras

    Drobotko Taras Активный пользователь

    С нами с:
    13 окт 2016
    Сообщения:
    30
    Симпатии:
    1
    Добрый вечер! Работаю над написанием класса, который реализует логику парсера тегов со страницы. Во время выполнения кода возникает ошибка:
    Код (Text):
    1. Fatal error: Declaration of Parser::process(string $url, string $tag) must be compatible with ParserInterface::process(string $url, string $tag): array in D:\OSPanel\domains\localhost\tag-parser3\Parser.php on line 8
    Прочитал и перевел данный текст, но не могу понять, почему возникает данная ошибка. На что обратить внимание, чтобы разобраться с ошибкой?
    Файл ParserInterface.php:

    PHP:
    1. <?php
    2. interface ParserInterface
    3. {
    4. /**
    5. *  @return array
    6. * @param string $url
    7. * @param string $tag
    8. */
    9.     public function process (string $url, string $tag):array;
    10. }
    11. ?>
    Файл Parser.php:
    PHP:
    1. <?php
    2.  
    3. require_once 'ParserInterface.php';
    4.  
    5. /**
    6. * @author Taras Drobotko <drobotkot@gmail.com>
    7. */
    8. class Parser implements ParserInterface
    9. {
    10.  
    11.     public function process(string $url, string $tag)
    12.     {
    13.        $str = file_get_contents($url);
    14.        preg_match_all('#<'.$tag.'>(.+?)</'.$tag.'>#su', $str, $res);
    15.     return $res;
    16.     }
    17.  
    18. }
    19. $parser = new Parser();
    20. $result = $parser->process('http://theory.phphtml.net', 'head');
    21. var_dump($result);
     
    #1 Drobotko Taras, 19 мар 2018
    Последнее редактирование: 19 мар 2018
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    допиши у себя в после аргументов функции, :array
     
  3. Drobotko Taras

    Drobotko Taras Активный пользователь

    С нами с:
    13 окт 2016
    Сообщения:
    30
    Симпатии:
    1
    Ок. Разобрался, большое спасибо!