Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Организация кода, паттерн, php?
Просмотров: 340
 
Ответов: 3
есть какой метод, кроме результата от работы этого метода хочется получать какую-то инфу
например вот код:
public function parserText($a) {<br/>
...<br/>
return $b<br/>
}
но в результате работы кода, например, текст $a был слишком длинным и мы его обрезали до 100 символов. Или мы обработали $a и вернули $b, но в при обработке кода мы обрабатывали $a как будто он в кодировке ХХХ
Так вот вопрос, как собирать подобную сопутсвующую инфу работы скрипта.
возвращать return (array($b, $infoMessage)); не хочется — слишком крутые изменения по коду, да и интерфейс нарушается,
Могу ещё внедрять в метод передачу по ссылке и после работы скрипта смотреть что в $infoMessage появилось
public function parserText($a, &$infoMessage) {<br/>
...<br/>
Какие можете ещё посоветовать достойные решения этой проблемы?
public function parserText($a) {<br/>
...<br/>
return $b<br/>
}public function parserText($a, &$infoMessage) {<br/>
...<br/>
Можно посмотреть как реализовано у других с ошибками.
1. Получать ошибку отдельным методом. Например: mysql_error — получение текста ошибки последней операции.
2. И ваш способ со ссылкой. Например: fsockopen — 3 и 4 аргументы передаются по ссылкам и содержат код и текст ошибки соответственно.
Но первый мне нравится больше — не надо изменять интерфейс существующих методов.
Ну можно например так:
class Parser
{
protected $_messages = array();
public function parse($a)
{
$this->_messages['message key'] = 'some message ...';
/// some code;
return $b;
}
public function getMessages()
{
return $this->messages;
}
}
$parser = new Parser();
$parser->parse($a);
$messages = $parser->getMessages();
{
protected $_messages = array();
public function parse($a)
{
$this->_messages['message key'] = 'some message ...';
/// some code;
return $b;
}
public function getMessages()
{
return $this->messages;
}
}
$parser = new Parser();
$parser->parse($a);
$messages = $parser->getMessages();
Можно возвращать объект, и использовать магический метод toString
public function __toString()
{
return $this->output;
}
Т.о. старый код будет работать(он же работал с полученной переменной как с строкой), а в новом коде Вы сможете обратиться к этому объекту и вызвать методы, которые возвращают дополнительную информацию. Это, конечно, ИМХО и надо смотреть на код =) Удачи!
{
return $this->output;
}
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться