제목에 '아직'을 추가해도 됩니다! 때로는 더 나은 방법을 아무도 모르기 때문에 상황이 현재와 같은 상태가 되는 경우도 있습니다.
그러나 모든 것이 좋은 생각은 아닙니다.
다음은 절대 할 수 없습니다:
class Child extends Parent1, Parent2 {}
그러나 많은 개발자는 인터페이스를 사용하여 클래스가 특정 동작을 구현하도록 하는 것과 같은 더 나은 접근 방식이 있다고 생각할 것입니다.
해당 인터페이스에 일종의 다중 상속을 적용할 수도 있습니다(귀하의 경우에 실제로 적합한 경우).
interface A {} interface B {} interface C extends A, B {}
그러나 그것은 다중 상속에 반대하는 최선의 주장이 아닙니다. 많은 프로그래밍 언어는 복잡성보다 단순성과 가독성에 중점을 둡니다.
다중 상속을 도입하면 PHP와 같은 고급 언어에서 문제가 될 수 있는 다이아몬드 문제는 물론이고 많은 오용이 발생할 수 있습니다.
불필요한 복잡성
을 피할 수 있다면 가장 좋습니다.많은 프로그래밍 언어는 동시에 여러 스레드를 실행할 수 있는 내장 도구를 제공합니다(예: Java, C++).
Pthreads는 PHP에 멀티스레딩을 도입하려고 시도했지만 pthreads 및 병렬 창시자인 Joe Watkins는 2019년 2월에 다음과 같이 발표했습니다.
Pthread는 아키텍처 결함으로 인해 PHP 7.4 이후 더 이상 유지되지 않습니다.
출처: PHP 문서 - phtreads
더 자세히 알아보고 싶다면 Go 동시성에서 영감을 받은 병렬을 확인해 보세요.
병렬이 꽤 멋지긴 하지만, 귀하의 경우에는 그러한 복잡성이 정말로 필요합니까?
비동기 처리를 위한 내장 메커니즘이 필요한 경우 이제 Fibers(PHP 8.1부터)를 사용하면 가능합니다.
Fiber를 사용하면 중단 가능한 함수를 작성할 수 있습니다.
Fibers는 꽤 멋지지만 귀하의 경우에는 그러한 복잡성이 정말로 필요합니까?
ReactPHP 또는 Swoole과 같은 타사 솔루션을 사용하는 것이 더 나은 선택이 될 수 있으며, 특히 이벤트 루프만 필요한 경우에는 더욱 그렇습니다.
그보다 더 좋은 점은 메시지를 처리하고 실패한 작업을 재시도할 수 있는 대기열 메커니즘을 구축할 수 있다는 것입니다.
Symfony 구성 요소 HTTP 클라이언트는 다양한 비동기 작업(예: 동시 비동기 스트리밍 및 다중 요청/응답)도 지원합니다.
PHP는 해석된 언어이므로 짧은 지연 시간과 높은 예측 가능성이 요구되는 집약적인 작업 및 시스템과 호환되지 않습니다.
그렇지만 고주파 거래, 스트리밍, 온라인 게임 또는 기계 및 프로세스에 대한 높은 수준의 감독을 위해 PHP를 사용하는 이유는 무엇입니까?
PHP는 웹 및 기타 다양한 창의적인 용도로 사용됩니다.
확실히 특징인 만큼 단순함을 유지했으면 좋겠습니다.
위 내용은 PHP: 아니요, 불가능합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!