In PHP müssen wir normalerweise feststellen, ob die Eigenschaften einer Klasse existieren. Für öffentliche Immobilien können Sie direkt über ISSET () oder Property_Exists () überprüfen. Aber wenn das Attribut privat ist, wie kann man es überprüfen? In diesem Artikel werden wir uns mit der Verwendung der Funktion von Property_Exists () befassen, um die Existenz privater Eigenschaften in einer PHP -Klasse zu überprüfen.
Property_Exists () ist eine integrierte Funktion in PHP, um zu überprüfen, ob die angegebenen Eigenschaften in der Klasse vorhanden sind. Die grundlegende Syntax ist wie folgt:
property_exists(object $object, string $property): bool
$ Objekt : Objektinstanz.
$ Eigenschaft : Der zu überprüfende Eigenschaftsname muss eine Zeichenfolge sein.
Diese Funktion gibt einen booleschen Wert zurück, der wahr ist , wenn die Eigenschaft existiert, ansonsten falsch .
In PHP kann ISSET () auch verwendet werden, um festzustellen, ob die Eigenschaft existiert, aber einige Einschränkungen. ISSET () wird hauptsächlich verwendet, um zu überprüfen, ob das Attribut festgelegt ist (d. H. Ob es nicht null ist). Property_Exists () ist es egal, ob der Wert der Eigenschaft null ist, sondern nur, ob die Eigenschaft vorliegt.
Private Attribute können nicht direkt über den externen Zugriff zugegriffen werden, daher können wir ISSET () oder Access direkt wie öffentliche Attribute nicht verwenden. Sie können jedoch indirekt beurteilen, ob das private Attribut über Property_Exists () existiert. Schauen wir uns ein einfaches Beispiel an:
<?php
class MyClass {
private $privateVar;
public function __construct($value) {
$this->privateVar = $value;
}
}
$obj = new MyClass('Hello, World!');
if (property_exists($obj, 'privateVar')) {
echo "Eigentum 'privateVar' existieren!";
} else {
echo "Eigentum 'privateVar' 不existieren!";
}
?>
Die Funktion Property_Exists () in PHP wird durch einen Reflexionsmechanismus implementiert, sodass die privaten Eigenschaften der Klasse überprüft werden können, auch wenn diese Eigenschaften nicht durch direkten Zugriff erhalten werden können. Dies ist einer der wichtigen Unterschiede zwischen IT und ISSET () . Obwohl wir nicht direkt auf die private Eigenschaft zugreifen können, können wir Property_Exists () verwenden, um festzustellen, ob die Eigenschaft in der Klasse definiert ist.
Eigenschaftsnamen sind Fall sensible : Eigenschaftsnamen in PHP sind Fall sensibel, daher sollten Property_Exists () bei der Beurteilung besondere Aufmerksamkeit auf den Fall von Eigentumsnamen achten.
Sie können nicht nach nicht existierenden Eigenschaften suchen : Property_exists () Rückgaben falsch, wenn die Eigenschaft noch nie definiert wurde. Daher ist es notwendig, sicherzustellen, dass das Attribut in der aktuellen Klasse vorhanden ist.
Statische Eigenschaften : Property_Exists () kann auch verwendet werden, um die Existenz statischer Eigenschaften zu überprüfen.
In der tatsächlichen Entwicklung müssen wir häufig beurteilen, ob die Eigenschaften einer Klasse vorhanden sind, um zu entscheiden, ob bestimmte Operationen durchgeführt werden sollen. Bei der Verarbeitung von Benutzereingaben und Überprüfung von Daten müssen beispielsweise Property_Exists () prüfen, ob das Objekt eine bestimmte Eigenschaft enthält.
Wenn Sie beispielsweise einen Formularverarbeitungskurs entwickeln, können Sie die Eigenschaften des Objekts dynamisch auf den im Formular eingegebenen Feldern erstellen. Zu diesem Zeitpunkt können Sie Property_Exists () verwenden, um zu überprüfen, ob die Eigenschaft erfolgreich erstellt wurde.
<?php
class UserForm {
private $username;
private $email;
public function __construct($username, $email) {
$this->username = $username;
$this->email = $email;
}
public function isFieldExist($field) {
return property_exists($this, $field);
}
}
$form = new UserForm('johndoe', '[email protected]');
if ($form->isFieldExist('username')) {
echo "用户名字段existieren!";
} else {
echo "用户名字段不existieren!";
}
?>
Property_Exists () ist eine sehr nützliche Funktion, insbesondere wenn Sie überprüfen müssen, ob eine Privateigentum in einer Klasse vorhanden ist. Es kann effektiv prüfen, ob das angegebene Attribut in der Klasse durch den Reflexionsmechanismus definiert ist, und durch die Sichtbarkeit der Attribute nicht eingeschränkt. Mit der Beherrschung von Property_Exists () können Sie die Attribute von Klassen flexibler verwalten und überprüfen und die Robustheit und Wartbarkeit Ihres Codes verbessern.