только сейчас столкнулся с тем, что все-таки не ошибся переписав пяток классов под такую реализацию. в одном из них есть функция формирующая запрос, у нее есть несколько обслуживающих функций, как оказалось очень удобно внутри любой обслуживающей функции знать какие именно параметры запроса определены, это к вопросу "зачем?"
Stierus, именно так я вначале и сделал, для унификации обмена данных между классами, но потом путем логических измышлений пришел к выводу что проще все хранить в исходном объекте.
DeepVarvar, именно для этого я сделал стек вызовов, где четко отслеживается из какого файла, какая функция какую вызвала и с какими параметрами
никогда нельзя точно сказать какие именно свойства объекта возьмет функция для своего использования. хотя здесь все спорно в общем мне кажется ИМХО что так удобнее, когда все содержиться в одном месте и объект знает какие свойства ему необходимы. Я согласен что возможны сложности при таком подходе, но "мы не ищем легких путей"... а относительно с++ не абстрактные функции, а просто функции, память меня все же подвела
для того чтобы полностью скрыть реализацию функции в классе. Была мысль реализовать этот параметр как приватный и в виде стека и работать с ним только специальными функциями. к тому же нет необходимости в переменных которые будут курсировать по коду, каждая функция знает какой параметр ей нужно использовать, при нормальной реализации она будет выбрасывать исключение если параметр несоответствующего типа или не определен.
эх, жаль все-таки, что php не строго типизированный язык... многих проблем можно было бы избежать...
по-поводу интерфейсов. по сути это наворот абстрактных функций из с++, где, если мне не изменяет память, их можно определить прямо внутри класса... если класс не очень сложный, то интерфейс ему не уперся, ИМХО!
Stierus, все это конечно хорошо. пример нормального интерфейса я и сам могу привести. Разговор шел про класс-пример. с тем же успехом имена параметров можно заменить на порядковые номера массива.
Пришла в голову мысль следующего содержания: "А что если убрать у методов класса все параметры, ввести классу доп поле и необходимые для функции параметры брать из этолго поля?"
пример
сталкивался с такой же проблемой, помогло изменение кодировки файла utf-8 -> ANSI -> utf-8 и попробуй поставить функцию session_start(); в самом начале файла сразу после <?PHP