目次
PHPにおける静的クラスと静的変数の使用法の違い、PHP変数の分析
ホームページ バックエンド開発 PHPチュートリアル php の静的クラスと静的変数の違いの分析、php 変数_PHP チュートリアル

php の静的クラスと静的変数の違いの分析、php 変数_PHP チュートリアル

Jul 13, 2016 am 10:09 AM
php 変数 親切 静的 静的変数

PHPにおける静的クラスと静的変数の使用法の違い、PHP変数の分析

この記事では、PHP での静的クラスと静的変数の使用法の違いを例とともに分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

静的とは、静的オブジェクトまたは静的変数を定義することです。この記事の関連する例を読んだ後、静的で定義された変数またはクラスメソッドの特性を理解します。

1. オブジェクト $object = new Class() を作成し、変数/メソッドがアクセス可能な場合は、「->」を使用して $object->attribute/function を呼び出します。

2. 静的か非静的かに関係なく、クラスのメソッド/変数: class::attribute/function を直接呼び出します。ただし、前提条件があります。

A. 変数の場合は、その変数にアクセスできる必要があります。

B. メソッドの場合、メソッドがアクセス可能であることに加えて、要件も満たす必要があります。

①静的メソッドであれば特別な条件はありません

② 非静的メソッドの場合は、$this を使用しない、つまり非静的変数/メソッドを呼び出さないようにメソッドを変更する必要があります。 もちろん、静的変数/メソッドを呼び出しても問題ありません。メソッド

それでは、 $object->… の使用と class::…:

の使用の違いを見てみましょう

1. $object->…を使用する場合、コンストラクターを実行してオブジェクトを作成する必要があります。

2. オブジェクトを作成するコンストラクターを実行せずに、class::... を使用して静的メソッド/変数を呼び出します。

3. class::... を使用して非静的メソッド/変数を呼び出します。オブジェクトを作成するためにコンストラクターを実行する必要はありません。

すると、2と3は同じなので、静的メソッド/変数の存在意義は何でしょうか?

静的: クラス メンバーまたはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできます。静的メンバーは、クラスに属し、どのオブジェクト インスタンスにも属しません。クラスのオブジェクト インスタンスは共有できます。

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

コードをコピーします


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

クラスの人{ // 静的メンバーのプロパティを定義します パブリック静的 $country = "中国"
; //静的メンバーメソッドを定義する
パブリック静的関数 my Country() {
// 静的メンバーのプロパティへの内部アクセス
echo "私は".self::$country."人
"; }
}
クラス学生は Person {
を拡張します 関数の勉強() {
echo "私は". "人
"; }
}
// メンバーの属性値を出力します
echo Person::$country."
" // 出力: 中国
$p1 = 新しい人 (); //echo $p1->country; // 書き方が間違っています
//静的メンバーメソッドにアクセスする
Person::my Country(); // 出力: 私は中国人です
// 静的メソッドにはオブジェクトを通じてアクセスすることもできます:
$p1->my Country();
// サブクラスのメンバー属性値を出力します
echo Student::$country."
" // 出力: 中国
$t1 = 新しい学生
; $t1->study(); // 出力: 私は中国人です
?>

この例を実行すると、次のように出力されます:
中国
私は中国人です
私は中国人です
中国
私は中国人です

概要: クラス内の静的メンバー属性またはメソッドにアクセスするには、self:: ($slef ではないことに注意) を使用します。コードは次のとおりです。


コードをコピーします

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

slef:: $country

slef::my Country()

サブクラス内の親クラスの静的メンバーのプロパティまたはメソッドにアクセスするには、parent:: ($parent ではないことに注意) を使用します。コードは次のとおりです。 コードをコピーします
コードは次のとおりです:

parent:: $country

親:: my Country()


静的メンバーのプロパティとメソッドへの外部アクセスはクラス名/サブクラス名::、コードは次のとおりです: コードをコピーします
コードは次のとおりです:

person::$country

人::私の国()


学生::$country

ただし、静的メソッドには通常のオブジェクトを通じてアクセスすることもできます。 例、静的変数を宣言する場合、コードは次のとおりです:
コードをコピーします

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

static $int = 0 // 正しい
; static $int = 1+2; // (式なので) 間違っています
static $int = sqrt(121); // (式でもあるので) 間違っています

$int++ エコー $int } ?>
例、静的変数の使用例、コードは次のとおりです:



コードをコピーします

コードは次のとおりです:
関数 Test()
{
静的 $w3sky = 0; エコー $w3sky
$w3sky++
}
?>
これで、Test() 関数を呼び出すたびに $w3sky の値が出力され、1 ずつ増加します。
静的変数は再帰関数を処理する方法も提供します。再帰関数はそれ自体を呼び出す関数です。再帰関数は無限に再帰する可能性があるため、再帰を終了するための十分なメソッドがあることを確認する必要があります。この単純な関数は、静的変数 $count を使用して再帰的に 10 までカウントし、いつ停止するかを決定します。

静的変数と再帰関数の例、コードは次のとおりです:


コードをコピーします コードは次のとおりです: 関数 Test()
{
静的 $count = 0;
$カウント++
エコー $count
if ($count テスト(); }
$カウント--; }
?>

注: 静的変数は、上記の例に従って宣言できます。式の結果を使用して宣言内で値を代入すると、解析エラーが発生します。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。


http://www.bkjia.com/PHPjc/943418.html

www.bkjia.com

tru​​e

技術記事 PHP における静的クラスと静的変数の使用法の違いの分析 PHP 変数 この記事では、PHP での静的クラスと静的変数の使用法の違いを分析します。参考のためにみんなで共有してください。具体的な分析は以下の通りです...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

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:28 PM

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

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

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

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

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

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

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:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles