LoginSignup
1
0

More than 3 years have passed since last update.

PHPのstatic とは、静的とは

Last updated at Posted at 2020-05-17

static(静的)概要

PHP Manualより

クラスプロパティもしくはメソッドを static として宣言することで、 クラスのインスタンス化の必要なしにアクセスすることができます。 static なプロパティは、インスタンス化されたクラスオブジェクトから アクセスすることはできません

つまりクラス外から staticメソッド(静的メソッド)にアクセスする場合、
Foo::staticではこのメソッドにアクセスできるが、foo->static()の形ではアクセスできない。

staticメソッド(静的メソッド)についての備忘

  • 静的(静的メソッド、静的プロパティ)というのは、インスタンス化しないで使うということ
  • なのでインスタンスに影響を受けない(保守しやすい)
  • 基本宣言されたクラス内で使用するケースが多い(self::xxxの形)
  • 平たく言うと、インスタンス化が必要な時は、staticはつけない、インスタンス化が不要な時はstaticをつける
  • アクセスする際は、::を使用する。
  • ::はスコープ定義演算子と言う
  • 無闇にインスタンスを実装して保守範囲を広げないために静的を利用する

staticメソッド(静的メソッド)にアクセスする例

sample.php
<?php

class Foo {
    public static function aStaticMethod() {
        echo "Hello Static!!!";
    }
}

Foo::aStaticMethod();
//or
$classname = 'Foo';
$classname::aStaticMethod();
//出力結果
"Hello Static!!!";

//staticなメソッドには->ではアクセスできない
$foo = new Foo();
$foo->aStaticMethod;
//出力結果
PHP Notice:  Undefined property:xxx
?>

参考

PHP: 静的メソッドは何のためにあるか?
self::と$this->の使い分け
PHP - What is OOP?

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0