多くの PHP 開発者は、クラスの通常のメンバー関数を使用するよりも、クラスの静的メンバー関数を使用する方が効率的であることを知っています。この記事では、この問題をアプリケーション レベルから分析します例を次に示します。
上記の例を見ると、興味深い点がわかります。 secho1() が静的メソッドとして定義された後も、動的クラスのオブジェクト インスタンス内で動的メソッドとして参照でき、secho3() は可能です。静的メンバー関数としても使用できるため、このレベルから、静的メンバー関数が動的メンバー関数より高速である理由を理解するのは難しくありません。
おそらく互換性の理由から、
PHP のクラス メンバーは動的と静的と明確に区別されておらず、明示的に宣言することなくすべてのメンバーは静的メンバーとみなされ、特定のメモリ領域に格納されます。そのため、静的はメンバー関数と呼ばれます。通常の関数を非常に高速に呼び出します。
オブジェクトインスタンスをメモリ内に再生成します。そのため、これは単純なクラスにとっては大したことではないかもしれません。複雑なクラスの場合、これは明らかに効率に影響します。
実際、上記の分析から、静的メソッドを宣言しなくても、システムはメンバーを静的として扱うことがわかります。完全に静的なメソッドを持つクラスと、動的であるがインスタンス オブジェクトを宣言していない完全なクラスは、ほぼ同じメモリを占有するため、より直接的なロジックの場合は、もちろん、一部の複雑なメソッドやオブジェクトに対しては、静的な以上がPHP 静的メンバー関数の効率性の問題の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。