ホームページ  >  記事  >  バックエンド開発  >  PHP の静的メソッドとプロパティ

PHP の静的メソッドとプロパティ

WBOY
WBOYオリジナル
2016-08-08 09:32:22913ブラウズ
class hw
{
	public static function hi()
	{
		return 'Hello World';
	}
}
echo hw::hi();//Output:Hellp World

class hw2
{
	public function hi()
	{
		return 'Hello Wrold';
	}
}
echo hw2::hi();//Output:Hellp World

上記の例からもわかるように、static属性を使用した後でも、static属性を使用しなくても、::メソッドを使用して外部から直接呼び出すことができます。ただし、効率やその他の理由から、静的な制限を使用することをお勧めします。

静的クラス内のメソッドの呼び出し

class foo
{
    private static function c()
    {
        return 'abcde';
    }

    public static function a()
    {
        echo self::c();
    }

    public static function b()
    {
        echo $this->c();
    }

    public function  e()
    {
        echo self::c();
    }
}
foo::a();//Output:abcde
foo::b();//Output:Fatal error: Using $this when not in object context in
foo::e();//Output:abcef

static キーワードを使用して制限されたメソッドは、self:: を使用してこのクラス内で参照する必要があります。

static属性

class foo
{
	public static $a;
	public static function a()
	{
		self::$a = 'abcd';
	}
}
foo::a();//Output:abcde
echo foo::$a;

static継承とuse

class foo
{
	public static $a;
	public static function a()
	{
		return 'abcde';
	}
}

class soo extends foo
{
	public static function a()
	{
		echo '12345';
	}
}

soo::a();//Output:12345
static継承は、通常のクラスの継承方法と同じで、大きな違いはありません。

class foo
{
	public static $a;
	public static function a()
	{
		return 'abcde';
	}
}

class soo extends foo
{
	public static function a()
	{
		echo parent::a();
	}
}

soo::a();//Output:12345

使用時の書き方の違いのみです。親クラスのメソッドを参照するにはparent::メソッドである必要があり、メソッドをself::で直接使用することはできません。そうでない場合は、出力はありません。

りー

上記は、内容の側面も含めて PHP の静的メソッドと属性を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。