ホームページ > バックエンド開発 > PHPの問題 > php 静的とはどういう意味ですか

php 静的とはどういう意味ですか

藏色散人
リリース: 2023-03-14 09:06:01
オリジナル
2061 人が閲覧しました

static は php の組み込みキーワードです。static キーワードを使用して静的メソッドとプロパティを定義したり、静的変数や遅延静的バインディングを定義したりすることもできます。

php 静的とはどういう意味ですか

この記事の動作環境: Windows7 システム、PHP7.4 バージョン、DELL G3 コンピューター

php static とはどういう意味ですか? ?

static は、PHP の組み込みキーワードです。

静的キーワード

ヒント

このページでは、静的メソッドとプロパティを定義するための静的キーワードの使用について説明します。 static は、静的変数と遅延静的バインディングの定義にも使用できます。そこで static がどのように使用されているかについては、上記のページを参照してください。

クラスの属性またはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできるようになります。インスタンス化されたクラス オブジェクト内で静的にアクセスできます。

静的メソッド

静的メソッドはオブジェクトを通じて呼び出す必要がないため、静的メソッドでは疑似変数 $this を使用できません。

警告

非静的メソッドを静的に呼び出すと、エラーがスローされます。

PHP 8.0.0 より前では、非静的メソッドの静的呼び出しは非推奨であり、E_DEPRECATED レベルの警告が発生しました。

例 #1 静的メソッドの例

<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}
Foo::aStaticMethod();
$classname = &#39;Foo&#39;;
$classname::aStaticMethod();
?>
ログイン後にコピー

静的プロパティ

静的プロパティは範囲解決演算子 (::) を使用してアクセスされ、アクセスできません。オブジェクト操作による文字 ( -> ) アクセス。

変数を介してクラスを参照することは可能ですが、この変数の値を予約語 (self、parent、static など) にすることはできません

例 #2 静的属性の例

<?php
class Foo
{
    public static $my_static = &#39;foo&#39;;
    public function staticValue() {
        return self::$my_static;
    }
}
class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}
print Foo::$my_static . "\n";
$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // 未定义的 "属性" my_static
print $foo::$my_static . "\n";
$classname = &#39;Foo&#39;;
print $classname::$my_static . "\n";
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>
ログイン後にコピー

PHP 8 での上記のルーチンの出力は次のようになります:

foo
foo
ログイン後にコピー

注意: 23 行目の /in/V0Rvv で静的プロパティ Foo::$my_static に非静的としてアクセスしています

警告: 未定義のプロパティ: Foo::$my_static (/in/V0Rvv の 23 行目)

foo
foo
foo
foo
ログイン後にコピー

推奨学習: 「PHP ビデオ チュートリアル

以上がphp 静的とはどういう意味ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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