Xwab
Форумыnavigate_nextПрограммирование на PHP

Ооп задачи
Сообщения
manyrus

альтернатива темы http://xwab.mobi/forum/viewtopic.php?t=334 , но с применением ооп.

22 Фев 2011, 18:34
manyrus

Первый вопрос, как бы вы изменили этот код?
class parse {
    /**
     * constants of types
     */
    const XML = 0;
    const INI = 1;

    /**
     * @param SimpleXMLElement $xml
     * @return array parsed xml
     */
    private function simpleXmlToArray($xml) {
        $array = $xml;
        $newArray = array();
        $array = (array) $array;
        foreach ($array as $key => $value) {
            $value = (array) $value;
            if (isset($value [0])) {
                $newArray [$key] = trim($value [0]);
            } else {
                if(!empty($array[$key])) {
                    $newArray [$key] = $this->simpleXmlToArray($value);
                } else {
                    $newArray [$key] ='';
                }
            }
        }
        return $newArray;
    }

    /**
     * @return string array parsed data
     * @param string $file path to the file
     * @param const $type constants of types
     */
    public function parseFile($file,$type) {
        switch ($type) {
            case parse::INI :
                return parse_ini_file($file);
                break;
            case parse::XML :
                return $this->simpleXmlToArray(simplexml_load_file($file));
                break;
        }
    }
    /**
     * @param string $str string data
     * @param const $type constants of types
     * @return array parsed data
     */
    public function parseString($str,$type) {
        switch ($type) {
            case parse::INI :
                return parse_ini_string($str);
                break;
            case parse::XML :
                return $this->simpleXmlToArray(simplexml_load_string($str));
                break;
        }
    }
}


__________
посл.ред. 22 Фев 2011, 19:29; всего 1 раз 22 Фев 2011, 18:35
manyrus

В этом коде допущена грубейшая ошибка...

22 Фев 2011, 18:35
manyrus

кому лень смотреть такой код, есть с подсветкой - http://pastebin.com/ktKHCKwA


__________
посл.ред. 22 Фев 2011, 19:29; всего 1 раз 22 Фев 2011, 18:45
OZ_

В 24 строке передаётся переменная неправильного типа. Я узнал это за примерно 10 секунд, благодаря подсказке PhpStorm
Пробуйте эту IDE, она сэкономит вам много времени, которое тратится на поиски ошибок.

22 Фев 2011, 18:55
manyrus

OZ_, хм, я использую phpstorm как раз  сейчас внимательно посмотрю

22 Фев 2011, 19:11
Fashion

" case parse::INI :"
чем self не устроил?

22 Фев 2011, 19:14
manyrus

Странно, ошибки не отображаются...

22 Фев 2011, 19:15
manyrus

редактор или я туплю?
Перезалил


__________
посл.ред. 22 Фев 2011, 19:27; всего 1 раз 22 Фев 2011, 19:24
manyrus

Fashion, это уже придирки  мне так нравится.

22 Фев 2011, 19:24
Ответить на тему