In PHP wird die Funktion Property_Exists verwendet, um zu überprüfen, ob ein Objekt über eine bestimmte Eigenschaft verfügt. Es ist ein sehr nützliches Werkzeug, insbesondere wenn wir dynamisch prüfen müssen, ob die Eigenschaften des Objekts existieren. Durch die Verwendung dieser Funktion kann der direkte Zugriff auf eine nicht existierende Eigenschaft vermieden werden, wodurch potenzielle Fehler oder Ausnahmen vermieden werden.
Die Syntax der Funktion Property_Exists lautet wie folgt:
<span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-keyword">object</span></span><span> </span><span><span class="hljs-variable">$object</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$property</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ Objekt : Die Objektinstanz, die auf die Eigenschaft überprüft werden muss.
$ Eigenschaft : Der zu überprüfende Eigenschaftsname muss eine Zeichenfolge sein.
Diese Funktion gibt einen Booleschen Wert zurück:
Gibt true zurück, wenn das Objekt die angegebene Eigenschaft hat.
Wenn das Objekt keine bestimmte Eigenschaft hat, wird FALSE zurückgegeben.
Das Folgende ist ein einfaches Beispiel, um die Verwendung der Funktion von Property_Exists zu demonstrieren.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Person</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$age</span></span><span>;
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">__construct</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$name</span></span></span><span>, </span><span><span class="hljs-variable">$age</span></span><span>) {
</span><span><span class="hljs-variable language_">$this</span></span><span>->name = </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-variable language_">$this</span></span><span>->age = </span><span><span class="hljs-variable">$age</span></span><span>;
}
}
</span><span><span class="hljs-variable">$person</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Person</span></span><span>(</span><span><span class="hljs-string">"John"</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>);
</span><span><span class="hljs-comment">// Überprüfen Sie die öffentlichen Eigenschaften 'name' Existiert es?</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'name'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'name' existieren。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'name' 不existieren。\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// prüfen私有Eigentum 'age' Existiert es?</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'age' existieren。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'age' 不existieren。\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// prüfen不existieren的Eigentum 'address'</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'address'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'address' existieren。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'address' 不existieren。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Das Ausgabeergebnis ist wie folgt:
<span><span>Eigentum </span><span><span class="hljs-string">'name'</span></span><span> existieren。
Eigentum </span><span><span class="hljs-string">'age'</span></span><span> existieren。
Eigentum </span><span><span class="hljs-string">'address'</span></span><span> 不existieren。
</span></span>
Es ist zu beachten, dass die Funktion von Property_Exists nicht nur prüft, ob die Objektinstanz über das angegebene Attribut verfügt, sondern auch die Sichtbarkeit des Attributs (öffentlich, geschützt, privat). Das heisst:
Es gibt wahr , selbst wenn die Eigenschaft privat oder geschützt ist.
Es wird jedoch nicht überprüft, ob der Wert der Eigenschaft initialisiert wird.
Wenn beispielsweise eine private Eigenschaft im Konstruktor nicht initialisiert wird, werden Property_exists weiterhin zurückgegeben, da sie nur überprüft, ob die Eigenschaft existiert und sich nicht um den tatsächlichen Wert der Eigenschaft kümmert.
Manchmal verwenden wir es in Verbindung mit Funktionen wie Property_Exists und identifizieren oder leer, um sicherzustellen, dass die Eigenschaft nicht nur existiert, sondern vor dem Zugriff auf eine bestimmte Eigenschaft nicht initialisiert und nicht leer ist. Beispiele sind wie folgt:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Person</span></span><span> {
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
</span><span><span class="hljs-keyword">private</span></span><span> </span><span><span class="hljs-variable">$age</span></span><span>;
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">__construct</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$name</span></span></span><span>) {
</span><span><span class="hljs-variable language_">$this</span></span><span>->name = </span><span><span class="hljs-variable">$name</span></span><span>;
}
}
</span><span><span class="hljs-variable">$person</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Person</span></span><span>(</span><span><span class="hljs-string">"John"</span></span><span>);
</span><span><span class="hljs-comment">// prüfen 'age' EigentumExistiert es?并且已初始化</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span>) && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>->age)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'age' existieren并且已初始化。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'age' 不existieren或未初始化。\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// prüfen 'name' EigentumExistiert es?并且已初始化</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">property_exists</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>, </span><span><span class="hljs-string">'name'</span></span><span>) && </span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$person</span></span><span>->name)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Eigentum 'name' existieren并且已初始化。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Property_Exists ist eine sehr praktische Funktion in PHP, mit der wir überprüfen können, ob eine bestimmte Eigenschaft eines Objekts vorhanden ist. Im Gegensatz zum direkten Zugriff auf Eigenschaften kann die Verwendung von Property_Exists Fehler effektiv vermeiden, die durch den Zugriff auf nicht existierende Eigenschaften verursacht werden. Durch diese Funktion können wir die Existenz oder das Fehlen von Objekteigenschaften sicherer bewältigen, insbesondere wenn wir mit dynamisch generierten Objekten oder Datenunsicherheiten umgehen.