Автор оригинала: David Wong.
Эта статья иллюстрирует перегрузку метода моделирования PHP на общем объектно-ориентированном языке. Поделитесь для вашей справки следующим образом:
Перегрузка методов в общих языках объектно-ориентированного проектирования (таких как C++, Java) определяет одно и то же имя метода и обращается к различным методам с одним и тем же именем метода через разное “количество параметров” или “тип параметров”. Но в PHP методы нельзя перегружать, потому что PHP является слабым языком типов, поэтому в параметрах самого метода могут быть получены разные типы данных, а также потому, что метод PHP может получать неопределенное количество параметров, поэтому невозможно вызывать разные методы с разными именами методов, передавая разное количество параметров. Вертикальный. Таким образом, в PHP нет традиционного метода перегрузки, но благодаря своей гибкости он может имитировать метод перегрузки на общем объектно-ориентированном языке.
Моделирование перегрузки методов в общих объектно-ориентированных языках в PHP
Давайте начнем с примера:
php /* Override means that subclasses override the same name method of the parent class. Overload: Overload refers to the existence of multiple methods with the same name, but the number of parameters is different. Pass different parameters and call different methods. However, in PHP, multiple methods with the same name are not allowed. Therefore, this overload in java, c++ cannot be accomplished. However, PHP is flexible and achieves similar results. */ // Method of Simulating Overload in PHP class Calc { Public function area () {// area // Determine the number of parameters that a call to area yields $args = func_get_args(); If (count ($args) == 1) {// has only one parameter Return 3.14 * $args [0] * $args [0]; // area of circle } Other if (count ($args) == 2) {// has two parameters Return $args [0] * $args [1]; // Find the area of a rectangle } else { Return'unknown graphics'; } } } $calc = new Calc(); // Calculate the area of a circle echo $calc->area(10),'
'; // Calculate the area of a rectangle echo $calc->area(5,8); ?>
Результаты операции:
314 40
Использование технологии перегрузки PHP для реализации перегрузки методов в общем объектно-ориентированном языке
Следующий пример-использование технологии перегрузки PHP, использующей магические методы для достижения перегрузки традиционного метода.
Для получения информации о технологии перегрузки в PHP, пожалуйста, обратитесь к: Объектно-ориентированная перегрузка PHP
Пример:
3){
Trigger_error ("The number of parameters is wrong! "(E_USER_ERROR);
}else if($len == 1){
return $argument[0];
}else if($len == 2){
return $argument[0]*$argument[0] + $argument[1]*$argument[1];
}else if($len == 3){
$v1 = $argument[0];
$v2 = $argument[1];
$v3 = $argument[2];
return $v1*$v1*$v1 + pow($v2, 3) + pow($v3, 3);
}
} Other if ($Func_name==='f2') {// Another method that does not exist
}else if($Func_name === 'f3'){ //......
}
}
}
$a = new A();
$v1 = $a->f1(1);
$v2 = $a->f1(2,3);
$v3 = $a->f1(4,5,6);
echo "v1= $v1, v2 = $v2, v3 = $v3";
?>Результаты заключаются в следующем:
v1= 1,,
Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Введение в объектно-ориентированное программирование Php, Введение в навыки работы с массивами PHP, Введение в базовую грамматику PHP, Краткое описание работы PHP и использования операторов, Краткое описание использования строк Php и данных php+mysql. Введение в библиотечные операции и Краткое описание общих навыков работы с базами данных на PHP
Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.
Оригинал: “https://developpaper.com/php-object-oriented-programming-simulates-an-example-of-method-overload-in-general-object-oriented-languages/”