目次
PHPのstaticキーワードとselfキーワードとの違い
ホームページ バックエンド開発 PHPチュートリアル PHPのstaticキーワードとselfキーワードとの違い_PHPチュートリアル

PHPのstaticキーワードとselfキーワードとの違い_PHPチュートリアル

Jul 13, 2016 am 09:47 AM
php self static そして キーワード 違い

PHPのstaticキーワードとselfキーワードとの違い

この記事ではPHPのstaticキーワードとselfキーワードとの違いを中心に紹介します この記事では静的キーワードである遅延バインディング(Late Static Bindings)の定義について解説します。 )、selfキーワードとの違いなど、必要な友達は参考にしてください

概要

以前にシングルトンパターンについての記事があったのですが、静的キーワードの理解があまり当てにならないことがわかったので、もう一度復習してみます。

静的キーワード

PHP マニュアルの static キーワードの概要は次のとおりです:

コードは以下の通りです:

クラスのプロパティまたはメソッドを static として宣言すると、クラスのインスタンス化を必要とせずにアクセスできるようになります。static として宣言されたプロパティには、インスタンス化されたクラス オブジェクトではアクセスできません (ただし、static メソッドではアクセスできます)。

一般的な意味は、クラスのプロパティとメソッドを静的として宣言した後、オブジェクトをインスタンス化せずに、静的プロパティとメソッドに直接アクセスできるということです。

PHP の静的メンバーとメソッドの特徴は次のとおりです。

1. クラスのインスタンスを介して静的メンバーにアクセスすることはできませんが、静的メソッドはアクセスできます。

2. -> 演算子を使用して静的メンバーにアクセスすることはできません。

3. 静的メソッドのスコープ内では、$this キーワードは出現できません。つまり、静的メソッドでは通常のメンバー変数にアクセスできません。

4. 静的メンバーとメソッドには、オブジェクトをインスタンス化せずに、クラス名を通じて直接アクセスできます。

遅延静的バインディング

以下の内容は PHP マニュアルからの抜粋です:

コードは以下の通りです:

PHP 5.3.0 以降、PHP には遅延静的バインディングと呼ばれる機能が追加されました。これは、継承スコープ内で静的に呼び出されるクラスを参照するために使用されます。

正確に言うと、遅延静的バインディングの動作原理は、前の「非転送呼び出し」にクラス名を保存することです。静的メソッド呼び出しを行う場合、クラス名は明示的に指定されたもの (通常は :: 演算子の左側) であり、非静的メソッド呼び出しを行う場合は、オブジェクトが属するクラスです。いわゆる「転送呼び出し」とは、self::、parent::、static::、および forward_static_call() の方法で行われる静的呼び出しを指します。 get_called_class() 関数を使用すると、呼び出されたメソッドのクラス名を取得でき、static:: はそのスコープを示します。

この機能を理解するには、マニュアルの例を参照してください

自己 vs 静的

デモを使用して、self と static の違いを直接説明します。

自己例:

コードは次のとおりです:

クラス車両{

protected static $name = 'これは車両です';

パブリック静的関数 what_vehicle() {

echo get_called_class()."n";

echo self::$name;

}

}

クラスセダンは車両を拡張します{

protected static $name = 'これはセダンです';

}

セダン::what_vehicle();

プログラム出力:

コードは次のとおりです:

セダン

これは乗り物です

静的な例:

コードは次のとおりです:

クラス車両{

protected static $name = 'これは車両です';

パブリック静的関数 what_vehicle() {

echo get_called_class()."n";

echo static::$name;

}

}

クラスセダンは車両を拡張します{

protected static $name = 'これはセダンです';

}

セダン::what_vehicle();

プログラム出力:

コードは次のとおりです:

セダン

これはセダンです

概要

前回の記事を見ると、一ヶ月以上ブログを更新していませんでしたが、一番の理由は、今後も頑張らなければならないということです。この記事は少し感情を込めて書きました。

http://www.bkjia.com/PHPjc/1025331.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1025331.html技術記事 PHP の static キーワードと self キーワードとの違い この記事では、PHP の static キーワードと self キーワードとの違いを中心に、static キーワードと遅延バインディングの定義について説明します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

H5とミニプログラムとアプリの違い H5とミニプログラムとアプリの違い Apr 06, 2025 am 10:42 AM

H5。ミニプログラムとアプリの主な違いは次のとおりです。技術アーキテクチャ:H5はWebテクノロジーに基づいており、ミニプログラムとアプリは独立したアプリケーションです。経験と機能:H5は軽量で使いやすく、機能が限られています。ミニプログラムは軽量で、インタラクティブが良好です。アプリは強力で、スムーズな経験があります。互換性:H5はクロスプラットフォーム互換性があり、アプレットとアプリはプラットフォームによって制限されています。開発コスト:H5には、開発コストが低く、中程度のミニプログラム、最高のアプリがあります。適用可能なシナリオ:H5は情報表示に適しており、アプレットは軽量アプリケーションに適しており、アプリは複雑な機能に適しています。

PSのエクスポートPDFのパスワード保護を設定する方法 PSのエクスポートPDFのパスワード保護を設定する方法 Apr 06, 2025 pm 04:45 PM

Photoshopでパスワードで保護されたPDFをエクスポート:画像ファイルを開きます。 [ファイル]&gtをクリックします。 「エクスポート」> 「PDFとしてのエクスポート」。 「セキュリティ」オプションを設定し、同じパスワードを2回入力します。 [エクスポート]をクリックして、PDFファイルを生成します。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

H5とMINIプログラムを宣伝するさまざまな方法は何ですか? H5とMINIプログラムを宣伝するさまざまな方法は何ですか? Apr 06, 2025 am 11:03 AM

H5とMINIプログラムのプロモーション方法には違いがあります。プラットフォーム依存:H5はブラウザに依存し、MINIプログラムは特定のプラットフォーム(WeChatなど)に依存しています。ユーザーエクスペリエンス:H5エクスペリエンスは貧弱で、ミニプログラムはネイティブアプリケーションと同様のスムーズな体験を提供します。通信方法:H5はリンクを介して広がり、ミニプログラムはプラットフォームで共有または検索されます。 H5プロモーション方法:ソーシャル共有、電子メールマーケティング、QRコード、SEO、有料広告。ミニプログラムプロモーション方法:プラットフォームプロモーション、ソーシャル共有、オフラインプロモーション、ASO、他のプラットフォームとの協力。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

See all articles