ホームページ > バックエンド開発 > PHPの問題 > PHPで静的属性と静的メソッドを呼び出す方法

PHPで静的属性と静的メソッドを呼び出す方法

王林
リリース: 2023-03-04 13:00:01
転載
3202 人が閲覧しました

PHPで静的属性と静的メソッドを呼び出す方法

静的プロパティとメソッド (静的および非静的を含む) は、メモリ内に 1 つの場所しかありません (静的プロパティの代わりに、インスタンス化されたオブジェクトと同じ数のプロパティがあります)。

(推奨チュートリアル: php グラフィック チュートリアル)

例:

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

class Human{

static public $name = "小妹";

public $height = 180;

static public function tell(){

echo self::$name;//静态方法调用静态属性,使用self关键词

//echo $this->height;//错。静态方法不能调用非静态属性

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

}

public function say(){

echo self::$name . "我说话了";

//普通方法调用静态属性,同样使用self关键词

echo $this->height;

}

}

$p1 = new Human();

$p1->say();

$p1->tell();//对象可以访问静态方法

echo $p1::$name;//对象访问静态属性。不能这么访问$p1->name

//因为静态属性的内存位置不在对象里

Human::say();//错。say()方法有$this时出错;没有$this时能出结果

//但php5.4以上会提示

?>
ログイン後にコピー

(推奨ビデオ チュートリアル: php ビデオ チュートリアル)

要約:

(1) 静的プロパティはインスタンス化せずに呼び出すことができます。静的属性はクラスに格納されるため、呼び出しメソッドは「クラス名::プロパティ名」;

(2) 静的メソッドはインスタンス化せずに呼び出すことができます。同上

(3) 静的メソッドは非静的プロパティを呼び出すことはできません。非静的プロパティはインスタンス化してオブジェクトに格納する必要があるため、

(4) 静的メソッドは、self キーワードを使用して非静的メソッドを呼び出すことができます。 PHP では、メソッドが self:: と呼ばれた後、自動的に静的メソッドに変換されます;

以上がPHPで静的属性と静的メソッドを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート