PHP에서는 원래 질문에 지정된 방식으로 함수를 덮어쓸 수 없습니다. 그러나 유사한 결과를 얻을 수 있는 다른 방법이 있습니다.
원래 접근 방식:
function ihatefooexamples() { return "boo-foo!"; }; // Redeclaration if ($_GET['foolevel'] == 10) { function ihatefooexamples() { return "really boo-foo"; }; };
PHP에서는 동일한 기능을 사용하여 함수를 재정의하는 것을 허용하지 않으므로 이 접근 방식은 실현 가능하지 않습니다. 이름 및 매개변수.
OOP를 사용한 대체 접근 방식:
객체 지향 프로그래밍(OOP)을 통한 다형성이 더 나은 솔루션입니다.
인터페이스 만들기 Fooable과 이를 구현하는 두 클래스 Foo 및 FooBar.
interface Fooable { public function ihatefooexamples(); } class Foo implements Fooable { public function ihatefooexamples() { return "boo-foo!"; } } class FooBar implements Fooable { public function ihatefooexamples() { return "really boo-foo"; } }
foolevel을 기반으로 적절한 클래스를 인스턴스화하고 ihatefooexamples 메서드를 호출합니다.
$foo = new Foo(); if (10 == $_GET['foolevel']) { $foo = new FooBar(); } echo $foo->ihatefooexamples();
이 OOP 접근 방식을 사용하여 우리는 함수 이름 일관성을 유지하면서 입력 매개변수를 기반으로 ihatefooexamples 함수의 동작을 동적으로 변경할 수 있습니다.
위 내용은 PHP에서 함수를 이와 같이 덮어쓸 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!