Verwendung der PHP-Methoden get und set: 1. Die Methode [get()] wird verwendet, um den Wert eines privaten Mitgliedsattributs abzurufen. Der Parameter wird im Namen des abzurufenden Mitgliedsattributs übergeben und der erhaltene Attributwert wird zurückgegeben. 2. Die Methode [set()] wird zum Festlegen von Werten für private Mitgliedsattribute verwendet und verfügt über zwei Parameter.
【Verwandte Lernempfehlungen: php-Grafik-Tutorial】
php-Get- und -Set-Methoden:
Im Allgemeinen definieren Sie die Attribute einer Klasse immer als privat. Dies ist mehr in Linie mit realistischer Logik. Lese- und Zuweisungsoperationen zu Attributen kommen jedoch sehr häufig vor, daher sind in PHP5 zwei Funktionen „__get()“ und „__set()“ vordefiniert, um Attribute abzurufen und zuzuweisen. Es ähnelt der Operation von Javabean in Java, und die verwendete Methode ist ähnlich, mit der Ausnahme, dass nicht wie in Javabean Set- und Get-Operationen für jedes Feld ausgeführt werden müssen. Fügen Sie einfach zwei magische Methoden hinzu. Das heißt, die Vorgänge zum Festlegen und Abrufen von Werten privater Mitglieder. PHP5 stellt uns spezielle Methoden zum Festlegen und Abrufen von Werten für Attribute zur Verfügung, die beiden Methoden „__set()“ und „__get()“. Diese beiden Methoden sind standardmäßig nicht vorhanden, wir fügen sie jedoch manuell zur Klasse Inside hinzu Wie die Konstruktormethode (__construct()) existiert sie nur, wenn sie innerhalb der Klasse hinzugefügt wird. Sie können diese beiden Methoden natürlich auch entsprechend Ihrem persönlichen Stil hinzufügen Der Code lautet wie folgt:
//__set()方法用来设置私有属性 public function __set($name,$value){ $this->$name = $value; } //__get()方法用来获取私有属性 public function __get($name){ return $this->$name; }
get()
-Methode: Diese Methode wird verwendet, um den Wert des privaten Mitgliedsattributs abzurufen. Der Parameter wird im Namen des Mitgliedsattributs übergeben Diese Methode wird nicht manuell aufgerufen, da wir sie zu einer privaten Methode machen können, die automatisch vom Objekt aufgerufen wird, wenn die private Eigenschaft abgerufen wird. Da die private Eigenschaft gekapselt wurde, kann der Wert nicht direkt abgerufen werden. Wenn Sie diese Methode jedoch zur Klasse hinzufügen, erhalten Sie den Wert automatisch direkt, wenn Sie eine Anweisung wie „echo$p1->name“ verwenden Führen Sie die Methode __get($name) aus und übergeben Sie den Attributnamen an den Parameter $name. Durch die interne Ausführung dieser Methode wird der Wert des von uns übergebenen privaten Attributs zurückgegeben. Wenn die Mitgliedseigenschaften nicht als privat gekapselt sind, ruft das Objekt selbst diese Methode nicht automatisch auf.
set()
-Methode: Diese Methode wird zum Festlegen von Werten für private Mitgliedseigenschaften verwendet. Sie verfügt über zwei Parameter. Der erste Parameter ist der Name der Eigenschaft, für die Sie den Wert festlegen möchten. und der zweite Parameter ist der für die Eigenschaft festzulegende Wert. Es gibt keinen Rückgabewert. Diese Methode muss auch nicht manuell aufgerufen werden. Sie wird automatisch aufgerufen, wenn das gleiche private Attribut gekapselt wurde , zum Beispiel: $this->name='zhangsan', dies führt zu einem Fehler, aber wenn Sie der Klasse die Methode __set($property_name, $value)
hinzufügen, wird beim direkten Zuweisen von a Wert an ein privates Attribut, wird es automatisch aufgerufen, wobei das Attribut, z. B. Name, an $property_name übergeben wird und der Wert „zhangsan“ übergeben wird, der an $value zugewiesen werden soll. Durch die Ausführung dieser Methode wird der Zweck der Zuweisung erreicht. Wenn die Mitgliedseigenschaften nicht als privat gekapselt sind, ruft das Objekt selbst diese Methode nicht automatisch auf. Um keine unzulässigen Werte zu übergeben, können Sie in dieser Methode auch ein Urteil fällen. Der Code lautet wie folgt:get()
方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用我们手工的去调用,因为我们也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。因为私有属性已经被封装上了,是不能直接获取值的,但是如果你在类里面加上了这个方法,在使用“echo$p1->name”这样的语句直接获取值的时候就会自动调用__get($name)方法,将属性name传给参数$name,通过这个方法的内部执行,返回我们传入的私有属性的值。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。
set()
方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。这个方法同样不用我们手工去调用,它也可以做成私有的,是在直接设置私有属性值的时候自动调用的,同样属性私有的已经被封装上
了,如果没有__set()这个方法,是不允许的,比如:$this->name=‘zhangsan',这样会出错,但是如果你在类里面加上了__set($property_name, $value)
<?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>"; ?>
Beim direkten Festlegen des privaten Attributwerts wird die Methode __set() automatisch aufgerufen, um den privaten Attributwert zuzuweisenWenn direkt Wenn Sie den Wert eines privaten Attributs direkt festlegen, wird die Methode __set() automatisch aufgerufen, um einem privaten Attribut einen Wert zuzuweisen Wenn der Wert eines privaten Attributs direkt abgerufen wird, wird automatisch diese __get()-Methode aufgerufenName: Zhang SanBeim direkten Abruf des privaten Attributwerts wird diese __get()-Methode automatisch aufgerufenGeschlecht : MännlichBeim direkten Abrufen des privaten Attributwerts wird diese __get()-Methode automatisch aufgerufenAlter: 20Wenn der obige Code die Methoden __get() und __set() nicht hinzufügt, führt das Programm zu einem Fehler Private Mitglieder können nicht außerhalb der Klasse betrieben werden. Der obige Code hilft uns, direkt auf die gekapselten privaten Mitglieder zuzugreifen, indem die Methoden __get () und __set () automatisch aufgerufen werden.
Verwandte Lernempfehlungen:
php-Programmierung(Video)
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die PHP-Methoden „Get' und „Set'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!