11

そのため、以前は常に次のような手続き型スタイルを使用して php をコーディングしていました。

mysqli_connect

また

mysqli_prepare

そして今、私は誤ってすべてを混同し始め、次のようなことをしました:

mysqli_connect();

これは手続き型で、次のコマンドです。

$mysqli->prepare();

これはオブジェクト指向スタイルです。

私のコードはまだ動作しますが、例が表示されるたびに php.net を見ると、例全体がオブジェクト指向または手続き型のいずれかです。そこで、オブジェクトと手続き型の php コードを同時に使用してもよいかどうか尋ねています。前もって感謝します!

4

3 に答える 3

15

どのようにコーディングするかは完全にあなたの決定と独自のスタイルですが、手続き型、オブジェクト指向、または混合を決定する際に考慮すべきいくつかの要因があると思います。

プログラム仕様 -

主に、チームに所属している場合、他の人のためにプログラムを作成している場合、または独自の仕様に従っている場合は、選択が既に行われているかどうかを検討してください。

可用性 -

それに直面しよう。オブジェクト指向または手続き型のいずれかで最適なライブラリが利用できる場合があり、両方で利用できるわけではありません。このような場合、あるスタイルから変更するには、まったく別のライブラリを使用するか、クラスまたは関数ライブラリを自分で構築する必要があります。利用可能なライブラリを使用すると時間を節約できます。唯一のオフセット コストは、主にオブジェクト指向プログラムの手続き型関数であり、その逆も同様です。

親しみやすさ -

可用性と同様に、特定のクラスまたは一連の機能に精通している場合があります。知識を追加するために立ち止まって新しいクラス モジュールを学習する時間があるかもしれませんが、既に学習して徹底的にテストした手続き型ライブラリを使用することで時間を節約できる場合があります。したがって、タイムラインで作業している場合は、より使い慣れたライブラリを使用することをお勧めします。ただし、調査と学習を行っている場合は、時間をかけてドキュメントを読み、新しいソリューションをインストールしてテストすることをお勧めします。

データ処理と速度 -

考えるべきもう 1 つの要因は、データをどのように処理しているかです。データがクラス内にある場合、クラスにはデータを操作するメソッドがある可能性があります。このような状況では、手続き型プログラミングでは、クラスまたはオブジェクトからデータを取得し、データを操作してから、オブジェクトを更新する必要があります。私の意見では、より良い設計は、オブジェクトに関数を含めることです。

ただし、すべてのデータ処理がクラス外にある場合は、関数を使用した方が高速な場合があります。クラス メソッドを使用する場合は、クラスをロードし、場合によってはオブジェクトを作成する必要があります。静的メソッドでさえ、関数よりも遅い場合があります。したがって、ループなどで速度が考慮される場合は、プログラムと PHP が関数、クラス、またはオブジェクトに到達するまでに実行する必要があるステップの数を検討してください。

先を見据えて -

手続き型プログラミングとオブジェクト指向プログラミングのどちらかを選択したい場合は、将来何が最も役立つかを予測してみてください。オブジェクト指向プログラミングは、再利用可能なコードを作成するのに非常に役立つことがわかりました。手続き型プログラミングは、コマンド ライン コードやオブジェクトの整理と使用に非常に役立つことがわかりました。これらは、コンピュータ サイエンスが進化しても変わらない可能性が高いため、以前に行った作業が再び役立つ可能性が高くなります。

対照的に、一部のライブラリやプログラミング言語では、スタイルが推奨される場合があります。PHP は両方のスタイルをサポートしています。しかし、私の全体的な印象が正しければ、PHP はオブジェクト指向スタイルの方向に進んでいます。PHP 関数とオブジェクトのどちらかを選択する場合は、関数が作成された PHP のバージョンを確認してください。また、手続き型関数のいずれかが減価償却されているか、廃止されるかどうかも確認してください。その場合は、オブジェクト指向のアプローチを使用してください。これにより、これらの手続き型関数がサポートされなくなったときにプログラムがより便利になります。

これがいくつかの考慮事項を提供することを願っています。ありがとう。

于 2013-05-26T04:24:35.500 に答える
3

両方を使用してもコードが壊れることはなく、技術的には「問題ありません」が、あなたまたは他の誰かによるアプリケーションの将来のメンテナンスを検討してください。コードが一貫していてきれいであれば、コードを読むのははるかに簡単です。今すぐコードを選んで固執することで、後で多くの時間を節約できます (できれば OOP)。

于 2013-05-26T04:15:54.623 に答える
2

コーディングの世界ではさらに悪いことが起こります。これは明らかに間違っていると言う人もいます。そして、他の人はただお金をもらって、コードが機能することを喜ぶでしょう。それはすべて、あなたがどのようなプログラマーになりたいかによって異なります。

http://www.codingconfessional.com/

また

http://pragprog.com/the-pragmatic-programmer

于 2013-05-26T03:39:24.513 に答える