フロントエンド開発の初心者。主にjsを勉強します。昔、業務上 PHP を学ぶ必要があったので、私も一時期 PHP を書きましたが、依然としてプロセス指向の記述方法を使用しており、PHP がポリモーフィズムなどを直接サポートしていないことも知っています。 2 つの言語のオブジェクト指向プログラミングの考え方を比較したものはあまり見つかりませんでした。これら 2 つの弱い型指定のスクリプト言語間のオブジェクト指向の考え方の違いについて詳しく知りたいですか?そして、オブジェクト指向プログラミングにおける 2 つの言語の長所と短所は何でしょうか?私は心から質問し、学びたいと思っています。以下に技術的な答えを求めるのではなく、「php が最高の言語です」という言葉でいっぱいになることを望んでいます。
返信内容:
PHP はポリモーフィズムをサポートしていないと誰が言いましたか?
最新の JavaScript (ES2015+) と最新の php (php7) の違いは実際には縮まりつつあります (主流言語は相互に学習するため、言語が長いほど類似性が高くなります)。オブジェクト指向機能に関しては、PHP にはパブリック/プロテクト/プライベートなどのインターフェイスと特性があります。さらに、PHP にはタイプヒントがあります。これらの JS はまだ利用できません。しかし、これらを重視する場合は、特性がないことを除けば、その他すべてが PHP よりも優れています。
js はオブジェクトのみに基づいています。 。つまり、js は厳密な意味ではオブジェクト指向ではありません。 es2015 では最近構文シュガー クラスがリリースされましたが、実際はどうなっているのでしょうか?さあ、F12 キーを押して、図に示すように「new class a{}」と入力します。
Zhihu の採用とこのクロスドメイン エラー レポートは無視してください。 。 。 。 。
jsの機能であるプロトタイプも存在します。 コンストラクター関数の名前はクラスを使用して宣言するのがオブジェクト指向だと思いますか? 。 。本質はまだ何年も前のものです。
PHP の全世界***** のために。
新世紀の PHP7 に関して言えば、その構文はより一般的であり、C++JAVAC# などに比較的近く、特別なことは何もありません。 。
イデオロギーの観点から言えば、js は奇妙で厄介なアプローチ (重い歴史的重荷) であるのに対し、PHP はより伝統的であると感じます (ただし、過去の悪かったものをあえて捨てています)。
jsのオブジェクト指向の性質を学ぶのは難しいです(継承だけでもメソッドがたくさんあります)~~ この欠点は明らかです。
しかし、php は比較的簡単に学ぶことができます。
一般的に使用される言語のプロトタイプ継承 JavaScript は、ある意味、プロトタイプ継承のサブセットである唯一の
クラス継承です。
PHP はすべてのオブジェクト指向言語と同じですが、PHP には Java のようなポリモーフィズムはないようです。 しかし、それでもオブジェクト指向言語であることを妨げるものではありません。 js のオブジェクト指向言語は、すべてのオブジェクト指向言語 (php、java、C# など) とは異なり、一般的な高級言語のオブジェクト指向言語ではありません。 、そのオブジェクト指向言語は関数に基づいています。この形式は、特定のオブジェクト js をリテラル形式で直接宣言できることを示しますが、オブジェクト指向高級言語のオブジェクトは新しいものでなければなりません。