php_PHP チュートリアルにおける静的クラスと静的変数の違いの分析
phpにおける静的クラスと静的変数の違いの分析
静的とは、静的オブジェクトまたは静的変数を定義することです。この記事の関連する例を読んだ後、静的で定義される変数またはクラスメソッドの特徴を理解します。
1. オブジェクト $ob ject = new Class() を作成し、変数/メソッドがアクセス可能であれば、「->gt;」を使用して $ob ject->attribute/function を呼び出します。
2. 静的か非静的かを問わず、クラスのメソッド/変数: class::attribute/function を直接呼び出します。ただし、前提条件があります。
A. 変数の場合、その変数にアクセスできる必要があります。
B. メソッドの場合、メソッドがアクセス可能であることに加えて、要件を満たす必要もあります。
①静的メソッドであれば特別な条件はありません
②非静的メソッドの場合は、$thisを使用しない、つまり非静的変数/メソッドを呼び出さないようにメソッドを変更する必要があります。もちろん、静的変数/メソッドを呼び出しても問題ありません。メソッド
それでは、$object ject->…を使用する場合とclass::…:
を使用する場合の違いを見てみましょう。
1. $object->…を使用する場合、コンストラクターを実行してオブジェクトを作成する必要があります。2. オブジェクトを作成するコンストラクターを実行せずに、class::...を使用して静的メソッド/変数を呼び出します。
3. class::... を使用して非静的メソッド/変数を呼び出すと、オブジェクトを作成するためにコンストラクターを実行する必要はありません。すると、2と3は同じなので、静的メソッド/変数の意味は何でしょうか?
静的: クラスのメンバーまたはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできます (静的メソッドを除く) 静的メンバーはクラスに属し、どのオブジェクト インスタンスにも属しません。ただし、クラスのオブジェクト インスタンスは共有できます。
例、コードは次のとおりです。
[コード]phpコード:
01
02クラスパーソン{
03 // 静的メンバーのプロパティを定義します
04 public static $country = "中国";
05 // 静的メンバーメソッドを定義する
06 public static function my Country() {
07 // 静的メンバープロパティへの内部アクセス
08 echo "I am".self::$country."人
";
09}
10}
11クラスの生徒が人を拡張します{
12関数学習() {
13 echo "私は".parent::$country."人
";
14}
15}
16//メンバー属性値を出力します
17echo Person::$country."
" // 出力: 中国
18$p1 = 新しい人();
19//echo $p1-> // 書き方が間違っています
20//静的メンバーメソッドにアクセスする
21person::my Country(); // 出力: 私は中国人です
22// 静的メソッドにはオブジェクトを通じてアクセスすることもできます:
23$p1->my Country();
24
25//サブクラス内のメンバー属性値を出力します
26echo Student::$country."
" // 出力: 中国
27$t1 = 新入生();
28$t1->study(); // 出力: 私は中国人です
29?>
この例を実行すると、次のように出力されます:
中国
私は中国人です
私は中国人です
中国
私は中国人です
概要: クラス内の静的メンバー属性またはメソッドにアクセスするには、self:: ($slef ではないことに注意) を使用します。コードは次のとおりです。
slef:: $countryslef::my Country()
サブクラス内の親クラスの静的メンバーのプロパティまたはメソッドにアクセスするには、parent:: ($parent ではないことに注意) を使用します。コードは次のとおりです。
親:: $country
親::my Country()
静的メンバーの属性とメソッドへの外部アクセスはクラス名/サブクラス名::で、コードは次のとおりです。
人::$国人::my Country()
学生::$country
ただし、静的メソッドには通常のオブジェクトを通じてアクセスすることもできます。
例、静的変数を宣言する場合、コードは次のとおりです:
[コード]phpコード:
1 2 function foo(){
3 static $int = 0;// 正解です
4 static $int = 1+2; // (式なので) 間違っています
5 static $int = sqrt(121) // 間違っています(式なので)
6 $int++;
7 echo $int;
8}
9?>
例、静的変数を使用する例、コードは次のとおりです。
[コード]phpコード:
1
2関数Test()
3 {
4 static $w3sky = 0;
5 echo $w3sky;
6 $w3sky++;
7}
8?>
これで、Test() 関数が呼び出されるたびに、$w3sky の値が出力され、1 ずつ増加します。
静的変数は再帰関数を処理する方法も提供します。再帰関数はそれ自体を呼び出す関数です。再帰関数を作成するときは、再帰を終了するための十分なメソッドがあることを確認する必要があります。この単純な関数は、静的変数 $count を使用して再帰的に 10 までカウントし、いつ停止するかを決定します。
例、静的変数と再帰関数、コードは次のとおりです:
[コード]phpコード:
01
02関数Test()
03 {
04 static $count = 0;
05
06 $count++;
07 echo $count;
08 if ($count
09テスト();
10}
11 $count--;
12}
13?>
注: 上の例に示すように、静的変数を宣言できます。式の結果を使用して宣言内で値を代入すると、解析エラーが発生します。
http://www.bkjia.com/PHPjc/1036683.html
。
ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

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

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