ホームページ >バックエンド開発 >PHPの問題 >PHPのfinalとstaticの違いは何ですか

PHPのfinalとstaticの違いは何ですか

藏色散人
藏色散人オリジナル
2021-09-16 09:32:221406ブラウズ

php における Final と static の違い: 1. static は静的変数です。静的変数はローカル関数ドメインにのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。 Final これは関数に使用され、オブジェクト指向の使用法に属し、一度使用すると、この関数を変更したりオーバーロードしたりすることはできません。

PHPのfinalとstaticの違いは何ですか

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

finalとの違いphp

static の static は静的変数です。静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。

たとえば、関数呼び出しの累積数をカウントするために使用できます。

<?PHP
function Test()
{
static $w3sky = 0;
echo $w3sky;
$w3sky++;
}
?>

静的 (静的) キーワード

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

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

静的メソッド

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

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

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

fainal は関数に使用され、オブジェクト指向の使用法に属します。一度使用すると、この関数を変更したりオーバーロードしたりすることはできません。

PHP 5 では、新しい Final キーワードが追加されています。親クラスのメソッドがfinalと宣言されている場合、子クラスはそのメソッドをオーバーライドできません。クラスがfinal宣言されている場合、そのクラスを継承することはできません。

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

以上がPHPのfinalとstaticの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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