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

PHPのgetterおよびsetterメソッドとは何ですか?


この記事では、PHPでゲッターとセッターの戦略を作成するための最良の方法を学びます。エンドユーザーによる変数への直接アクセスを制限する必要がある場合は、ゲッターとセッターの戦略が利用されます。ゲッターとセッターは、変数の値を定義または取得するために使用されるメソッドであり、通常はプライベート変数です。

名前が示すように、getterメソッドは、オブジェクトの値を取得または回復する手法です。また、セッターメソッドはオブジェクトの値を設定する手法です。

例を通して、getterメソッドとsetterメソッドの使用法を理解しましょう。

<?php
   class Person{
      private $name;
      public function setName($name){
         $this->name = $name;
      }
      public function getName(){
         return $this->name;
      }
   }
   $person = new Person();
   echo $person->name;
?>

出力:

PHP Error Cannot access private property Person::$name

説明:

上記のPersonクラスには、$nameというプライベートプロパティがあります。私有財産であるため、上記のように直接アクセスすることはできず、致命的なエラーが発生します。

上記のコードを実行して目的の出力を取得するには、この例をテストしてみましょう。

<?php
   class Person{
      private $name;
      public function setName($name){
         $this->name = $name;
      }
      public function getName(){
         return 'welocme'. $this->name;
      }
   }
   $person = new Person();
   $person->setName('Alex');
   $name = $person->getName();
   echo $name;
?>

出力:

welcomeAlex

説明:

ここでは、プライベートプロパティにアクセスできるようにするために、getDataという「getter」関数を作成しました。プロパティの可視性がprivateに設定されているため、同様に値を変更または変更することはできません。したがって、私たちが作成した「セッター」関数の1つであるsetNameを利用する必要があります。その後、Personオブジェクトをインスタンス化しました。

セッター手法setDataを使用して、$nameプロパティを「Alex」に「設定」します。次に、getter関数getDataを使用して$nameプロパティの値を取得しました。


  1. C#のクラスメソッドとクラスメンバーの違いは何ですか?

    メンバー関数、つまりクラスのメソッドは、他の変数と同様に、クラス定義内にその定義またはプロトタイプを持つ関数です。メンバーであるクラスの任意のオブジェクトを操作し、そのオブジェクトのクラスのすべてのメンバーにアクセスできます。 以下は例です- public void setLength( double len ) {    length = len; } public void setBreadth( double bre ) {    breadth = bre; } 以下は、C#でクラスメンバー関数にアクセスする方法を示す例です- 例 usin

  2. PythonクラスのGetters/Settersメソッドとは何ですか?

    ゲッターとセッターは、データカプセル化の原則を確実にするために、多くのオブジェクト指向プログラミング言語で使用されています。それらはミューテーターメソッドとしても知られています。データのカプセル化は、これらのデータを操作するメソッドとのデータのバンドルと見なされます。もちろん、これらのメソッドは、データを取得するためのゲッターであり、データを変更するためのセッターです。この原則に従って、クラスの属性は、他のコードからそれらを隠して保護するためにプライベートにされます。 残念ながら、適切なPythonクラスは、ゲッターとセッターを使用してプライベート属性をカプセル化する必要があると広く信じられて