В PHP мы не можем напрямую реализовать перегрузку метода методами с одним и тем же названием метода и различными подписями, потому что PHP является слабым типом данных и не может хорошо различать подписи. Тем не менее, вы можете использовать метод __call () в классах PHP для реализации перегрузки метода. Когда метод, который не существует в классе, называется автоматически метод __call (), который находится в форме __call ($ name, $ arguments), где $ name - это имя метода, а $ аргументы - параметр типа массива.
Следующим примером является использование перегрузки метода PHP для динамического создания методов GET и установить. (В объектно-ориентированном программировании свойства в классе будут назначены с использованием GET и SET, но если в классе слишком много свойств, таких как 30, тогда, если мы не используем перегрузку метода, нам нужно написать 30 методов и 30 методов и написать их самостоятельно ...)
Кода -копия выглядит следующим образом:
<? Php
классный человек
{
частное $ name;
частный $ возраст;
частный адрес $;
частная школа $;
Частный $ Phonenum;
публичная функция __call ($ method, $ args)
{
$ perfix = strtolower (substr ($ method, 0,3));
$ property = strtolower (substr ($ method, 3));
if (пусто ($ perfix) || пусто ($ property))
{
возвращаться;
}
if ($ perfix == "get" && isset ($ this-> $ property)))
{
Возврат $ this-> $ недвижимость;
}
if ($ perfix == "set")
{
$ this-> $ property = $ args [0];
}
}
}
$ p = новый человек ();
$ p-> setName ('lvcy');
$ p-> setge (23);
$ p-> setAddress (chengdu);
$ p-> setschool ('uestc');
$ p-> setphonenum ('123456');
echo $ p-> getName (). '// n';
echo $ p-> getage (). '// n';
Echo $ p-> getAddress (). '// n';
echo $ p-> getschool (). '// n';
?>
Эта проблема легко решается с помощью метода __CALL (), а не записывать метод GET SET для каждого свойства.