ホームページ > バックエンド開発 > PHPの問題 > phpの静的メソッドとは何を指すのでしょうか?

phpの静的メソッドとは何を指すのでしょうか?

藏色散人
リリース: 2023-03-03 10:22:02
オリジナル
2430 人が閲覧しました

php 静的メソッドとは、PHP で static キーワードを使用して静的メソッドと属性を定義することを指します。静的は、静的変数と遅延静的バインディングの定義にも使用できます。その使用構文は次のようになります。「public static $my_static」 = 'ふー';"。

phpの静的メソッドとは何を指すのでしょうか?

# 推奨: 「

PHP チュートリアル

静的 (静的) キーワード

このページでは、静的メソッドとプロパティを定義するための static キーワードの使用について説明します。 static は、静的変数と遅延静的バインディングの定義にも使用できます。

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

PHP 4 との互換性を保つために、アクセス制御が指定されていない場合、プロパティとメソッドはデフォルトで public になります。

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

静的プロパティには、オブジェクトから -> 演算子を使用してアクセスできません。

非静的メソッドを静的に呼び出すと、E_STRICT レベルのエラーが発生します。

他のすべての PHP 静的変数と同様、静的プロパティは式ではなくリテラルまたは定数にのみ初期化できます。したがって、静的プロパティは整数または配列に初期化できますが、別の変数や関数の戻り値に初期化したり、オブジェクトを指すことはできません。

PHP 5.3.0 以降、変数を使用してクラスを動的に呼び出すことができます。ただし、この変数の値をキーワード self、parent、または static にすることはできません。

例 #1 静的プロパティの例

<?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";      // Undefined "Property" my_static 
print $foo::$my_static . "\n";
$classname = &#39;Foo&#39;;
print $classname::$my_static . "\n"; // As of PHP 5.3.0
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>
   </programlisting>
  </example>
  <example>
   <title>静态方法示例</title>
    <programlisting role="php">
<![CDATA[
<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}
Foo::aStaticMethod();
$classname = &#39;Foo&#39;;
$classname::aStaticMethod(); // 自 PHP 5.3.0 起
?>
ログイン後にコピー

以上がphpの静的メソッドとは何を指すのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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