ホームページ > バックエンド開発 > PHPの問題 > PHPのgetメソッドとsetメソッドの使い方

PHPのgetメソッドとsetメソッドの使い方

coldplay.xixi
リリース: 2023-03-05 13:04:01
オリジナル
3471 人が閲覧しました

php get および set メソッドの使用: 1. [get()] メソッドは、プライベート メンバー属性の値を取得するために使用されます。パラメーターは 1 つあり、パラメーターはメンバーの名前で渡されます。取得する属性、取得した属性が返される 値; 2. [set()] メソッドはプライベート メンバー属性の値を設定するために使用され、2 つのパラメーターがあります。

PHPのgetメソッドとsetメソッドの使い方

#【

関連する学習の推奨事項: php グラフィック チュートリアル #】

php get および set メソッドの使用:

一般的に言えば、クラスの属性は常にプライベートとして定義します。これは、より現実的なロジックに沿ったものです。ただし、属性の読み取りと代入の操作は非常に頻繁に行われるため、PHP5 では、属性を取得および代入するための 2 つの関数「__get()」と「__set()」があらかじめ定義されています。これは Java での Javabean の操作に似ており、使用されるメソッドも同様ですが、Javabean のように各フィールドで set および get 操作を実行する必要がない点が異なります。 2 つの魔法のメソッドを追加するだけです。つまり、プライベートメンバーの値を設定・取得する操作です。 PHP5 には、属性の値を設定および取得するための特別なメソッド、「__set()」と「__get()」という 2 つのメソッドが用意されています。これら 2 つのメソッドはデフォルトでは存在しませんが、手動でクラスに追加します。 , コンストラクター メソッド (__construct()) と同様に、クラス内に追加された場合にのみ存在します。これら 2 つのメソッドは次の方法で追加できます。もちろん、個人的なスタイルに従って追加することもできます:

コードは次のとおりです:

//__set()方法用来设置私有属性
public function __set($name,$value){
$this->$name = $value;
}
//__get()方法用来获取私有属性
public function __get($name){
return $this->$name;
}
ログイン後にコピー

get()メソッド: このメソッドはプライベート メンバー属性の値を取得するために使用されます。このメソッドには 1 つのパラメーターがあります。パラメーターは次のとおりです。取得したいメンバー属性の名前を渡し、取得した値を返します。属性値は、このメソッドをオブジェクトによって自動的に呼び出されるプライベート メソッドにすることもできるため、このメソッドを手動で呼び出す必要はありません。 private 属性を直接取得する場合。 private プロパティはカプセル化されているため、値を直接取得することはできませんが、このメソッドをクラスに追加すると、「echo$p1->name」などの文を使用したときに自動的に値を直接取得できるようになります。 __get($name) メソッドを使用し、属性名をパラメーター $name に渡します。このメソッドの内部実行を通じて、渡したプライベート属性の値が返されます。メンバーのプロパティがプライベートとしてカプセル化されていない場合、オブジェクト自体はこのメソッドを自動的に呼び出しません。

set()メソッド: このメソッドは、プライベート メンバー プロパティの値を設定するために使用されます。これには 2 つのパラメーターがあります。最初のパラメーターは、設定するプロパティの名前です。の値。2 番目のパラメータは次のとおりです。最初のパラメータは属性に設定される値であり、戻り値はありません。このメソッドも手動で呼び出す必要はありません。プライベートにすることもできます。プライベート属性値を直接設定すると自動的に呼び出されます。同じプライベート属性は

でカプセル化されています。__set がない場合は、 () このメソッドは許可されていません。例: $this->name='zhangsan' では、エラーが発生しますが、

__set($property_name, $value) をクラス This に追加すると、エラーが発生します。プライベート属性に直接値を代入する場合、メソッドが自動的に呼び出されます $property_name に name などの属性が渡され、$value に代入される値「zhangsan」が渡されます このメソッドの実行により、目的任務は達成されました。メンバーのプロパティがプライベートとしてカプセル化されていない場合、オブジェクト自体はこのメソッドを自動的に呼び出しません。不正な値を渡さないように、このメソッドで判定することもできます。コードは次のとおりです。

コードは次のとおりです:

<?php
class Person
{
//下面是人的成员属性,都是封装的私有成员
private $name; //人的名子
private $sex; //人的性别
private $age; //人的年龄
//__get()方法用来获取私有属性
private function __get($property_name)
{
echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
if(isset($this->$property_name))
{
return($this->$property_name);
}
else
{
return(NULL);
}
}
//__set()方法用来设置私有属性
private function __set($property_name, $value)
{
echo "在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
$this->$property_name = $value;
}
}
$p1=newPerson();
//直接为私有属性赋值的操作,会自动调用__set()方法进行赋值
$p1->name="张三";
$p1->sex="男";
$p1->age=20;
//直接获取私有属性的值,会自动调用__get()方法,返回成员属性的值
echo "姓名:".$p1->name."<br>";
echo "性别:".$p1->sex."<br>";
echo "年龄:".$p1->age."<br>";
?>
ログイン後にコピー

プログラムの実行結果:

private 属性値を直接設定する場合、この __set()メソッドが自動的に呼び出されますプライベート属性への値の代入

プライベート属性の値を直接設定する場合、この __set() メソッドが自動的に呼び出されます。プライベート属性の値を直接設定する場合、このメソッドが自動的に呼び出されます。この __set() メソッドは、プライベート属性に値を割り当てます。

プライベート属性の値を直接取得する場合、この __get() メソッドが自動的に呼び出されます

名前: Zhang San

private 属性値を直接取得する場合、この __get() メソッドが自動的に呼び出されます。

性別: 男性

プライベート属性値を直接取得する場合、この __get() メソッドが自動的に呼び出されます。 private 属性値を指定すると、この __get() メソッドが自動的に呼び出されます。 Method

Age: 20

上記のコードで __get() メソッドと __set() メソッドが追加されない場合、プログラムはプライベート メンバーはクラス外で操作できないため、エラーが発生し、上記のコードは __get() メソッドと __set() メソッドを自動的に呼び出すことで、カプセル化されたプライベート メンバーに直接アクセスするのに役立ちます。

関連する学習に関する推奨事項:

php プログラミング
(ビデオ)

以上がPHPのgetメソッドとsetメソッドの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート