ホームページ  >  記事  >  バックエンド開発  >  PHP オブジェクト指向での静的プロパティと静的メソッドの呼び出し

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

WBOY
WBOYオリジナル
2016-07-29 09:01:00785ブラウズ

これは、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

<?php

header("content-type:text/html;charset=utf-8"<?php

header(classHuman{

staticpublic$name= "小妹";

public$height= 180;

staticpublicfunctiontell(){

echoself::$name;"content-type:text/html;charset=utf-8"

);

class

Human{ //因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象

publicfunctionsay(){

echoself::$name. "我说话了";

staticpublic

$name echo$this->height;

 =

「妹」

}

$p1= newHuman();

$p1;

公開$p1->tell();$身長

= 180 ;

echo$p1::$name;

staticpublic

functionHuman::say();tell(){

echo

?>self::

$name
//静的メソッドは静的プロパティを呼び出します。使用します自分自身のキーワード

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

// $これはインスタンス化されたオブジェクトを表し、ここにクラスがあるので、どのオブジェクト$が


を表すかわかりません}}

🎜🎜public🎜🎜function🎜🎜say(){ 🎜🎜🎜🎜 🎜🎜echo🎜🎜self::🎜🎜$name🎜🎜 🎜🎜「話しました。」 🎜🎜🎜🎜🎜🎜 //通常のメソッドは静的プロパティを呼び出しますが、self キーワードも使用します 🎜🎜🎜🎜 🎜🎜エコー🎜🎜$this🎜🎜->身長; 🎜🎜🎜🎜 🎜🎜} 🎜🎜🎜🎜} 🎜🎜🎜🎜$p1🎜🎜= 🎜🎜new🎜🎜Human(); 🎜🎜🎜🎜$p1🎜🎜->say(); 🎜🎜🎜🎜$p1🎜🎜->tell();🎜🎜//オブジェクトは静的メソッドにアクセスできる 🎜🎜🎜🎜echo🎜🎜$p1🎜🎜::🎜🎜$name🎜🎜;🎜🎜//オブジェクトは静的プロパティにアクセスします。このように $p1->name にアクセスすることはできません 🎜🎜🎜🎜//静的属性の記憶場所がオブジェクト内にないため 🎜🎜🎜🎜人間::say();🎜🎜//違う。 Say() メソッドに $this がある場合はエラーが発生しますが、$this がなくても結果は取得できます。 🎜🎜🎜🎜//ただし、php5.4 以降ではプロンプトが表示されます 🎜🎜🎜🎜?> ,🎜静的メソッドは、self キーワードを使用して非静的メソッドを呼び出すことができます。 PHP では、メソッドは self:: を呼び出すと、自動的に静的メソッドに変換されます 🎜🎜🎜🎜3. 静的メソッドは非静的属性を呼び出すことができません。非静的プロパティはインスタンス化してオブジェクトに保存する必要があるためです。 🎜 以上、PHP オブジェクト指向における静的プロパティと静的メソッドの呼び出しを内容も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。 🎜 🎜 🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。