XiMiK
Новичок
Обработка результатов реботы функции.
Вернулся к программированию на пхп после перерыва и столкнулся с проблемой. Как-то неудобно возвращать false или верное значение, а потом проверять выдала ли ошибку или нет. Во-первых, верное значение может быть нулём. Тогда необходимо проверять на строгое соответствие типа (=== false, === 0), что имхо не очень красиво. В конце концов когда мы проверяем не очень ясно какая ошибка возникла при выводе false. То есть выводит полезное значение надо одним способом (одним каналом), а код ошибки другим.
Вижу несколько способов решения проблемы. Например собирать информацию об ошибках в теле ф-ции в специальный объект/ячейку массива и выдавать результат в составном виде (данные + ошибка). Или передавать функции указатель на переменную куда скидывать код ошибки. Есть ещё вариант целого дебаг класса (синглтона) который будет использоваться для обработки ошибок и дебега. Да, есть ещё трай кетч, но они мне не по душе после джавы. Код с ними кажется монстроподобным, хотя возможно я преувеличиваю. Сам я раньше использовал самописную систему на основе наследуемого класс-интерфейса через который потомок собирал ошибки сам в себя, после чего все объеты собирались специальным дебаг классом и формировался вывод.
Интересно кто как выходит из данной ситуации. Вопрос относится скорее к стилю программирования.
Вернулся к программированию на пхп после перерыва и столкнулся с проблемой. Как-то неудобно возвращать false или верное значение, а потом проверять выдала ли ошибку или нет. Во-первых, верное значение может быть нулём. Тогда необходимо проверять на строгое соответствие типа (=== false, === 0), что имхо не очень красиво. В конце концов когда мы проверяем не очень ясно какая ошибка возникла при выводе false. То есть выводит полезное значение надо одним способом (одним каналом), а код ошибки другим.
Вижу несколько способов решения проблемы. Например собирать информацию об ошибках в теле ф-ции в специальный объект/ячейку массива и выдавать результат в составном виде (данные + ошибка). Или передавать функции указатель на переменную куда скидывать код ошибки. Есть ещё вариант целого дебаг класса (синглтона) который будет использоваться для обработки ошибок и дебега. Да, есть ещё трай кетч, но они мне не по душе после джавы. Код с ними кажется монстроподобным, хотя возможно я преувеличиваю. Сам я раньше использовал самописную систему на основе наследуемого класс-интерфейса через который потомок собирал ошибки сам в себя, после чего все объеты собирались специальным дебаг классом и формировался вывод.
Интересно кто как выходит из данной ситуации. Вопрос относится скорее к стилю программирования.