PHP OOP에서 인터페이스 메서드의 매개변수
인터페이스에서 메서드를 설명할 때는 메서드 자체의 이름뿐만 아니라 해당 메서드가 받아들이는 매개변수도 지정해야 합니다.
예를 통해 알아보겠습니다. 덧셈, 뺄셈,
곱셈, 나눗셈 연산을 위한 클래스를 설명하는
iMath 인터페이스가 있다고 가정해 보겠습니다.
이 인터페이스는 다음과 같습니다:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
현재 우리 인터페이스의 메서드는 어떤 매개변수도 받지 않습니다. 사실 이 인터페이스를 구현하는 클래스의 메서드도 매개변수를 받아서는 안 되며, 그렇지 않으면 오류가 발생합니다.
이제 인터페이스에서 메서드 매개변수를 지정해 보겠습니다:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
이제 우리 인터페이스의 구현을 작성해 보겠습니다:
<?php
class Math implements iMath
{
public function sum($a, $b)
{
return $a + $b;
}
public function subtract($a, $b)
{
return $a - $b;
}
public function multiply($a, $b)
{
return $a * $b;
}
public function divide($a, $b)
{
return $a / $b;
}
}
?>
클래스에서 다른 수의 매개변수를 설정하려고 하면 간단히 성공하지 못할 것입니다: PHP가 오류를 발생시킵니다. 이렇게 하면 실수로 어떤 매개변수를 잊어버리거나 실수로 불필요한 매개변수를 추가하는 것을 방지할 수 있습니다.
iUser 인터페이스가 다음과 같이 주어졌다고 가정해 보겠습니다:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
이 인터페이스를 구현하는
User 클래스를 만드세요.