"ihatefooexamples()"와 같은 함수를 선언한 다음 if-condition 블록 내에서 "재선언"할 수 있는지 여부에 관한 질문입니다. . 기본적으로 함수의 동작을 덮어쓰는 것이 목적입니다.
안타깝게도 이 특정 쿼리에 대한 대답은 "아니요"입니다. PHP는 질문에서 제안하는 방식의 함수 덮어쓰기를 지원하지 않습니다.
그러나 PHP는 객체 지향 프로그래밍(OOP)을 통해 다형성이라는 강력한 메커니즘을 제공합니다. 유사한 기능을 달성하기 위해. 다음 코드를 고려해보세요.
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"; } } $foo = new Foo(); if (10 == $_GET['foolevel']) { $foo = new FooBar(); } echo $foo->ihatefooexamples();
이 코드에서:
이 기술을 사용하면 런타임에 서로 다른 구현 간에 전환하여 함수형 메서드의 동작을 동적으로 변경할 수 있습니다. , 효과적으로 함수를 덮어쓰는 것과 유사한 효과를 얻습니다.
위 내용은 PHP가 다른 언어처럼 함수를 덮어쓸 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!