переопределение процедур в php

программирование php базы данных делфи ООП

я вот знаю что в Delphi например есть возможность переопределения процедур, например

procedure init(val: string) overload;
procedure init(val1: string; val2: integer) overload;

можно ли сделать подобное в php?

Примечание:
обидно, классы есть, ооп есть, а переопределения нетю(((

Примечание:
PiONeeR >> а способы работы с этой функцией знаете? можете пример привести?

none7 >> не совсем понятна идея, можно по подробнее?

Примечание:
Ленивец >> разнообразие функций у которых назначение одинаковое но в зависимости от аргументов несколько иной код делает огромное нагромождение функций со схожими именами, а хочется красиво)

Примечание:
про include не знабыл конечно же, но если будет так, кому приятно:

new_func(val)
new_func_1(val1, val2)
new_func_2(val1,val2,val3)
new_func_3(val1,val2,val3,val4)
new_func_4(val1,val2,val3,val4,val5)

даже если давать разные имена все равно их много, а енто не красиво

Примечание:
так я и хотел сделать переопределение, что бы вызывать одно имя функции но с разными параметрами, в зависимости от которых будет выполнятся та или иная процедура

Примечание:
есть некий модуль, он выполняет запросы(модуль изначально был написан не мной, оптимизирую), так вот, в нем есть несколько типов процедур:

executeSqlFromPool($sqlName, $moduleName, $is_limit, $start, $len, $parameters = array(),$replaceParametrs=array(), $new_params=array())
executeSqlFromPoolSimple($sqlName, $moduleName, $is_limit, $start, $len, $parameters = array(), $replaceParametrs=array())
executeSqlFromPoolSmall($sqlName, $parameters = array(), $moduleName, $replaceParametrs = array())

суть у них одна, но различные действия, не много, вот что бы такого хренового разнообразия не было, я хотел сделать что-то типа

executeSqlFromPool($sqlName, $moduleName, $is_limit, $start, $len, $parameters = array(), $replaceParametrs=array(), $new_params=array())
executeSqlFromPool($sqlName, $moduleName, $is_limit, $start, $len, $parameters = array(), $replaceParametrs=array())
executeSqlFromPool($sqlName, $parameters = array(), $moduleName, $replaceParametrs = array())
ты сколько указал переменных такая из них и выполнилась, и это еще не все процедуры, их там больше, вот...

Примечание:
вообще то есть, у делфи я такое видел

procedure init(val: string) overload;
procedure init(val1: string; val2: integer) overload;

а потом вызываешь

init("New") или
init("Other", 10)

Примечание:
>> Не плохо было бы сперва язык узнать, а потом уже "оптимизировать".
язык я знаю, просто не все тонкости, вот и хочу узнать, есть ли таковая возможность, я бы прислал реальный пример из дельфи, но исходники дома, я делал подобные вещи там

Примечание:
опишу по подробнее

procedure sql(var tableName : string) overload;
begin
// выполняем обычный SELECT запрос из таблицы tableName который ни чем не ограничен
// выводим таблицу с результатом
end;


procedure sql(var tableName: string; Limit : Integer) overload;
begin
// выполняем запрос SELECT из таблицы tableName который ограничен по количеству записей на число указанное в Limit
// выводим таблицу с результатом
end;

теперь если нам надо выполнить запрос с ограничением мы пишем sql("users",10); например нам надо 10 пользователей, а вот когда надо всех, то мы пишем sql("users");

компилятор сам определяет какая функция нам нужна, с ограничением или без .в зависимости от того сколько параметров мы передаем

Примечание:
это пример на дельфи, вот хочу вытворить такое же на php, вот и интересуюсь, имеется ли возможность)))
Ответы:
нет нельзя
Можно самому создать нечто подобное на базе функций func_num_args, func_get_args, is_int, is_string и прочих is_<type>... .
Есть функция override_function
В ООП переопределение методов есть и называется это "наследование". Это стандартная вещь в ООП.
> знаю что в Delphi
Delphi и php это разные языки и синтаксис там разный, и вообще очень отличий много.
Что мешает написать другую фунсцию и вызывать её где нужно?
> а способы работы с этой функцией знаете? можете пример привести?
name_fun ([params]);
> огромное нагромождение функций
а про include забыл? Помести функции в файл и инклюдь
Функции вообще пишут чтоб уменьшить исходник. В месте где используется много строк, можно использовать одну. Например в условиях или циклах..
> так, кому приятно
А что удобней?
Помоему так:
if(&fun()==null){
     print '&fun() равно null';
}
else{
...
...
}


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.