ホームページ  >  記事  >  バックエンド開発  >  PHPでのselfとthisの使用

PHPでのselfとthisの使用

墨辰丷
墨辰丷オリジナル
2018-05-09 14:38:363077ブラウズ

self と $this の機能は非常に似ていますが、異なります。 $this は静的メンバーと定数を参照できません。 self はクラス自体に似ており、$this はインスタンスそのものに似ています。

1. self

1.self は、このクラスの静的プロパティと静的メソッドにアクセスでき、親クラスの静的プロパティと静的メソッドにアクセスできます。 self を使用する場合、インスタンス化する必要はありません

<?php  
class selfStuP{  
      static $instance;  
  
      public function __construct(){  
             self::$instance = &#39;instance&#39;; //静态属性只能通过self来访问  
      }  
  
      public function tank(){  
             return self::$instance;  //访问静态属性  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>

ページ出力:instance

<?php  
class selfStuP{  
      static $instance;  
  
      public function __construct(){  
             self::$instance = &#39;dell&#39;; //静态属性只能通过self来访问  
      }  
  
      static public function pentium(){  
             return self::$instance;  //静态方法也可以继续访问静态变量,访问时需  
要加$  
      }  
  
      public function tank(){  
             return self::pentium();  //访问静态属性  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>

ページ出力:dell

2.self は const

<?php  
class selfStuP{  
      const NAME = &#39;tancy&#39;;  
  
      public function tank(){  
             return self::NAME;  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>

で定義された定数にアクセスできます ページ出力:tancy

2. this

1.this は、このクラスのメソッドとプロパティを呼び出すことができ、また、親クラスの調整可能なメソッドとプロパティを呼び出すこともできます。static 定数と const 定数を除いて、その他は基本的にすべて呼び出すことができます。これを使用して連絡しました

<?php  
  
        class thisStu{  
              public $public;  
              private $private;  
              protected $protected;  
  
              public function __construct(){  
                     $this->public =  &#39;public&#39;;  
                     $this->private = &#39;private&#39;;  
                     $this->protected = &#39;protected&#39;;  
              }  
  
              public function tank(){  
                     return $this->public;  
              }  
  
              public function dell(){  
                     return $this->private;  
              }  
  
              public function datesrt(){  
                     return $this->protected;  
              }  
  
        }  
  
        $str = new thisStu();  
        echo $str->tank();  
        echo "\n";  
        echo $str->dell();  
        echo "\n";  
        echo $str->datesrt();  
        echo "\n";  
  
?>

ページ出力:

public
private
protected

概要:

つまり、self は静的クラスを参照するクラス名であり、$this は静的クラスを参照するインスタンス名です非静的クラスに。

関連する推奨事項:

PHP における self、static、$this の違いと、後期静的バインディングの詳細な説明

PHP における $this とアクセス修飾子の使用方法の詳細な説明

PHPにおけるselfと$thisの詳しい説明 $thisの違い

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

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