ホームページ >バックエンド開発 >PHPチュートリアル >PHP での静的属性と静的メソッドの呼び出しオブジェクト指向_PHP チュートリアル

PHP での静的属性と静的メソッドの呼び出しオブジェクト指向_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:07:381185ブラウズ

オブジェクト指向phpでの静的プロパティと静的メソッドの呼び出し

この記事では、主にオブジェクト指向phpでの静的プロパティと静的メソッドの呼び出しについて紹介し、例を用いて静的プロパティと静的メソッドの原理と呼び出し手法を分析します。 、必要な友達はそれを参照できます

この記事の例では、PHP での静的プロパティと静的メソッドの呼び出しについて説明します。皆さんの参考に共有してください。詳細は以下の通りです

これは、PHP オブジェクト指向における静的属性と静的メソッドの呼び出しの分析です。呼び出し(呼び出せるかどうか、どのように呼び出すか)については、メモリのどこに保存されているかを理解する必要があるため、非常に理解しやすいです。静的プロパティとメソッド (静的および非静的を含む) は、メモリ内に 1 つの場所しかありません (静的プロパティではなく、インスタンス化されたオブジェクトと同じ数のプロパティがあります)。

例:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

header("content-type:text/html;charset=utf-8");

クラス人間{

static public $name = "リトルシスター";

パブリック $height = 180;

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

echo self::$name;//静的メソッドは self キーワードを使用して静的プロパティを呼び出します

//echo $this->height;//間違っています。静的メソッドは非静的プロパティを呼び出すことはできません

//$this はインスタンス化されたオブジェクトを表し、ここにクラスがあるため、$this がどのオブジェクトを表すかわかりません

}

パブリック関数say(){

echo self::$name .「話しました」;

//通常のメソッドは、self キーワードも使用して静的プロパティを呼び出します

echo $this->高さ;

}

}

$p1 = 新しい人間();

$p1->say();

$p1->tell();//オブジェクトは静的メソッドにアクセスできます

echo $p1::$name;//オブジェクトは静的プロパティにアクセスします。このように $p1->name

にアクセスすることはできません

//静的属性の記憶場所がオブジェクト内にないため

Human::say();//間違っています。 Say() メソッドに $this がある場合はエラーが発生しますが、$this がない場合は結果を取得できます

//ただし、php5.4 以降ではプロンプトが表示されます

?>

結論:

(1). 静的プロパティはインスタンス化せずに呼び出すことができます。静的属性はクラスに格納されるため、呼び出しメソッドは「クラス名::属性名」になります。 (2) 静的メソッドはインスタンス化せずに呼び出すことができます。同上
(3) 静的メソッドは非静的プロパティを呼び出すことができません。非静的属性はインスタンス化してオブジェクトに保存する必要があるためです。
(4) 静的メソッドは、self キーワードを使用して非静的メソッドを呼び出すことができます。 PHP では、メソッドが self:: と呼ばれた後、自動的に静的メソッドに変換されます。

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

http://www.bkjia.com/PHPjc/955272.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/955272.html技術記事この記事では主にPHPオブジェクト指向における静的静的属性と静的メソッドの呼び出しを紹介し、例を用いて静的属性を分析します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。