PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのレイトスタティックバインディングとは何ですか?


後期静的バインディングの背後にある基本的な考え方は、継承の概念と「自己」キーワードの概念が同じ規則に従わないということです。たとえば、子クラスで呼び出された親クラスのメソッド「fun」は、「self」が子を参照するようにはなりません(期待どおり)。

レイトスタティックバインディングの概念は、新しいキーワード「static」を導入します。これを使用すると、関数がランタイムクラス、または関数が最初に使用されたクラスにバインドされます。これに加えて、静的関数または変数は通常、コンパイル時ではなく実行時に実行されます。したがって、静的な変数に値を動的に割り当てる必要がある場合、それは実行時に発生します。これは、遅延静的バインディングと呼ばれます。

<?php
class student
{
   public static $my_name = 'Joe';
   public static function getName()
   {
      return "The name of the student is : " . self::$my_name;
   }
   public static function getAge()
   {
      echo static::getName();
   }
}
class Professor extends student
{
   public static function getName()
   {
      return "The name of the student is : " . self::$my_name . " and age is 24.";
   }
}
student::getAge();
echo "\n";
Professor::getAge();
?>

出力

The name of the student is : Joe
The name of the student is : Joe and age is 24.

「student」という名前のクラスには、名前とその名前を取得する関数が含まれています。別の関数は、学生の年齢を取得します。 「教授」という名前のクラスは学生クラスを拡張し、関数も継承されます。年齢を取得する関数は、学生と教授の両方のインスタンスで呼び出されます。


  1. PHPファイルとは何ですか?

    拡張子が.PHPのファイルは、ハイパーテキストプリプロセッサコードを含むPHPソースコードファイルです。これらは通常、Webサーバーで実行されているPHPエンジンからHTMLを生成するWebページファイルとして使用されます。 PHPエンジンがコードから作成するHTMLコンテンツは、Webブラウザーに表示されるものです。 WebサーバーはPHPコードが実行される場所であるため、PHPページにアクセスしてもコードにアクセスできませんが、代わりにサーバーが生成するHTMLコンテンツが提供されます。 一部のPHPソースコードファイルは、.PHTML、PHP3、PHP4、PHP5、PHP7、PHP

  2. Pythonクラスの静的メソッドとは何ですか?

    すべてのPythonクラスには、インスタンスメソッド、クラスメソッド、静的メソッドの3種類のメソッドがあります。 例 コードを検討する class OurClass:     def method(self):         return 'instance method called', self      @classmethod     def classmethod(cls):         return 'c