Рубрики
Uncategorized

Объектно-ориентированное программирование PHP имитирует пример перегрузки методов в общих объектно-ориентированных языках

Автор оригинала: 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/”