프론트엔드 개발이 처음입니다. 주로 js를 배우세요. 예전부터 비즈니스를 위해 PHP를 배워야 해서 한동안 PHP도 작성했지만 여전히 프로세스 중심의 작성 방식을 사용하고 있고, PHP가 다형성 등을 직접 지원하지 않는다는 것도 알고 있습니다. 나는 두 언어의 객체 지향 프로그래밍 아이디어를 비교하는 것을 많이 찾지 못했습니다. 이 두 가지 약한 유형의 스크립팅 언어 사이의 객체 지향 사고의 차이점에 대해 더 자세히 알고 싶으십니까? 그리고 객체지향 프로그래밍에서 두 언어의 장점과 단점은 무엇일까요? 진심으로 질문하고 배우고 싶습니다. 아래에 기술적인 답변이 없는 것이 아니라 "php가 최고의 언어입니다"라는 말이 넘쳐나기를 바랍니다.
답글 내용:
PHP가 다형성을 지원하지 않는다고 누가 말했습니까?
최신 JavaScript(ES2015+)와 최신 PHP(php7)의 차이는 실제로 줄어들고 있습니다(주류 언어는 서로 학습하므로 길이가 길수록 유사합니다). . OO 기능 측면에서 PHP에는 공개/보호/비공개를 포함한 인터페이스와 특성이 있습니다. 게다가 PHP에는 타입힌트(typehint)가 있습니다. 이러한 JS는 아직 사용할 수 없습니다. 그러나 이러한 특성을 매우 중요하게 생각한다면 TypeScript를 사용할 수 있습니다. 특성이 없다는 점을 제외하면 다른 모든 것이 PHP보다 낫습니다.
Node.js는 객체에만 기반합니다. . 따라서 js는 엄밀한 의미에서 객체지향적이지 않습니다. es2015에서는 최근 구문 설탕 클래스를 출시했지만 실제로 무슨 일이 일어나고 있나요? 자, F12를 누르고 그림과 같이 "new class a{}"를 입력하세요.
Zhihu 모집 및 이 교차 도메인 오류 보고서를 무시하세요. . . . . 프로토타입 프로토타입의 js 기능도 존재합니다. 생성자 함수의 이름이 클래스의 선언이라고 생각하시나요? . . 본질은 여전히 수년 전의 것입니다.
전 세계***** PHP를 위해. 새 세기의 PHP7에 관한 한 구문은 보다 일반적이며 C++JAVAC# 등에 비교적 가깝고 그다지 특별한 것은 없습니다. 그것에 대해.
이념적으로 보면 js는 이상하고 무작위적인 접근 방식(무거운 역사적 짐)인 반면, PHP는 더 전통적이라고 생각합니다(하지만 감히 과거의 나쁜 점을 버립니다).
js의 객체지향적 성격을 배우는 것은 어렵다(상속에만 메소드가 많다)~~ 단점은 뻔하다. 하지만 PHP는 비교적 배우기 쉽습니다.
일반적으로 사용되는 언어 프로토타입 상속 자바스크립트는 프로토타입 상속의 하위 집합이라는 의미에서 유일한 클래스 상속입니다.
PHP는 모든 객체지향 언어와 동일하지만 PHP에는 Java와 같은 다형성이 없는 것 같습니다. 그러나 이것이 여전히 객체지향 언어가 되는 것을 방해하지는 않습니다. js의 객체지향 언어는 모든 객체지향 언어(php, java, C# 등)와는 다릅니다. js는 일반적인 고급 언어의 객체지향 언어가 아닙니다. , 객체지향 언어는 함수를 기반으로 하며 특정 객체 js를 리터럴 형식으로 직접 선언할 수 있음을 나타냅니다. 반면 객체지향 고급 언어의 객체는 새 객체여야 합니다.