目次
返信内容:
ホームページ バックエンド開発 PHPチュートリアル PHP の初心者は次のような質問をしたいと思います。いつクラスを使用する必要があり、いつ関数を使用する必要がありますか?

PHP の初心者は次のような質問をしたいと思います。いつクラスを使用する必要があり、いつ関数を使用する必要がありますか?

Sep 19, 2016 am 09:16 AM
php

一部の問題は、クラスまたは関数を直接使用して解決できます。また、一部の PHP フレームワークでは、多くのクラスのメソッドがこのクラスのインスタンスに依存する必要がありません。これらのメソッドは手段的なメソッドであり、この場合でも、これらのクラスには属性 (変数) がありません。クラスを使用する方が良いのは何ですか? static を宣言しない場合は、呼び出す前にインスタンス化する必要がありますが、これは関数よりもはるかに面倒です。では、なぜ多くの PHP クラス ライブラリは、少数の関数で実現できる関数を実装するために多数のクラスを使用するのでしょうか?

それでは、どのような状況で function を使用する必要があり、どのような状況で class を使用する必要があるのでしょうか?

返信内容:

一部の問題は、クラスまたは関数を直接使用して解決できます。また、一部の PHP フレームワークでは、多くのクラスのメソッドがこのクラスのインスタンスに依存する必要がありません。これらのメソッドは手段的なメソッドであり、この場合でも、これらのクラスには属性 (変数) がありません。クラスを使用する方が良いのは何ですか? static を宣言しない場合は、呼び出す前にインスタンス化する必要がありますが、これは関数よりもはるかに面倒です。では、なぜ多くの PHP クラス ライブラリは、少数の関数で実現できる関数を実装するために多数のクラスを使用するのでしょうか?

それでは、どのような状況で function を使用する必要があり、どのような状況で class を使用する必要があるのでしょうか?

クラスの機能は、関数をパッケージ化することです。複数の関数をモジュール (クラス) にパッケージ化する必要がある場合は、単体の関数の代わりにクラスを使用します。

それをいつ使用するかは個人の意見と地域の状況の問題です。完璧な答えを追求する必要はありません。

質問者さんはオブジェクト指向の哲学を十分に理解していないのではないかと思います。

オブジェクト指向クラスは、多数の関数をモジュールにカプセル化するほど単純ではありません。これにより、コード世界のさまざまなものを 1 つのオブジェクト (オブジェクト) に抽象化し、それにアクションとラベルを与えることができます。つまり、メソッドとプロパティです。
たとえば、ユーザー メンバーがログインして投稿でき、名前が Chang Wei である場合、ログイン方法と投稿方法、および名前属性を与えることができます。
したがって、あなたの質問に対する私の答えは、それが非常に小さな関数またはオブジェクトに結合されていない非常に一般的な関数である場合は関数を使用し、それ以外の場合はクラスを使用することです。

あなたが言ったように、これは非常に興味深い質問です:「どのような状況で関数を使用する必要があり、どのような状況でクラスを使用する必要がありますか?」

何が起こっているのですか? 3 つの例を挙げてください:

  1. 1回限りのミッション?

  2. 長期メンテナンス、複雑なビジネスロジック、頻繁な変更?

  3. 長期保守、開発フレームワークなどの基本サポート?

通常、1 回限りのタスクの場合、何を使用するかは関係なく、タスクを完了するだけです。長期的なメンテナンスが必要なタスクは、関数やクラスだけではありません。これはエンジニアリング、ソフトウェアエンジニアリングです。

過去と比較して、エンタープライズレベルのソフトウェアシステムはより大規模かつ複雑になり、より頻繁に変更され、複雑さを軽減し、変化に対処する方法がソフトウェアエンジニアリングの研究を促進し、高級言語の進化も引き起こしました。より強力な表現力を発揮します。設計面では、分解、抽象化、階層構造などを用いて複雑さを軽減し、変化に対応します。

オブジェクト指向テクノロジーによって与えられるブラインド処方には、抽象化、カプセル化、モジュール性、階層、型、同時実行性、永続性などの原則が含まれます。古くから伝わる伝統薬も数多くあります。また、『プログラミング スタイル』、『コード エンサイクロペディア』、『アジャイル ソフトウェア開発 - 原則、パターン、実践』、『読みやすいコードを書く技術』、『ソフトウェア デザイン リファクタリング』、『エンタープライズ アプリケーション アーキテクチャ パターン』などの多くの古典も残しています。 》 》……

それで、答えは何でしょうか?わかりませんが、おそらく、複雑なシステムで自分自身を苦しめ、実践を導くためのいくつかの原則を理解し、知識と行動を統合する必要があるかもしれません。

ツール関数が多数ある場合は、ツールクラスで静的関数として呼び出す方が明確ですし、目的別にツール関数を分類するのにも便利です。

カテゴリー。

リーリー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles