Was ist die Instanz des PHP-Typoperators? Wie benutzt man?

伊谢尔伦
Freigeben: 2023-03-10 22:54:01
Original
1729 Leute haben es durchsucht

In PHP5 ist der Typ der durch Methoden übergebenen Variablen unsicher. Verwenden Sie den Instanzoperator, um zu bestimmen, ob die aktuelle Instanz eine solche Form haben kann. Wenn die aktuelle Instanz „instanceof“ verwendet, um sie mit der aktuellen Klasse, der übergeordneten Klasse (unendliche Nachverfolgung nach oben) und der implementierten Schnittstelle zu vergleichen, gibt sie „true“ zurück.

"instanceof"

Die Verwendung des Operators ist sehr einfach. Er verwendet zwei Parameter, um seine Funktion zu vervollständigen. Der erste Parameter ist das Objekt, das Sie überprüfen möchten, und der zweite Parameter ist der Klassenname (eigentlich ein Schnittstellenname), der verwendet wird, um zu bestimmen, ob dieses Objekt eine Instanz der entsprechenden Klasse ist. Natürlich wird die obige Terminologie verwendet, damit Sie sehen können, wie intuitiv dieser Operator zu verwenden ist. Seine grundlegende Syntax lautet wie folgt:

if (object instanceof class name){
 //做一些有用的事情
}
Nach dem Login kopieren
Verwendung des Instanzoperators

<?php
class User{
private $name;
public function  getName(){
return "UserName is ".$this->name;
}
}
class NormalUser extends User {
private $age = 99;
public function getAge(){
return "age is ".$this->age;
}
}
class UserAdmin{ //操作.
public static function  getUserInfo(User $_user){
echo $_user->getAge();
}
}
$normalUser = new NormalUser();
UserAdmin::getUserInfo($normalUser);
?>
Nach dem Login kopieren
Ergebnis der Programmausführung: Alter ist 99

Weil in der Benutzerklasse Ohne diese Methode wird ein Fehler gemeldet:

<?php
class User{
private $name;
public function  getName(){
return "UserName is ".$this->name;
}
}
class NormalUser extends User {
private $age = 99;
public function getAge(){
return "age is ".$this->age;
}
}
class UserAdmin{ //操作.
public static function  getUserInfo(User $_user){
echo $_user->getAge();
}
}
$User = new User(); // 这里new的是User.
UserAdmin::getUserInfo($User);
?>
Nach dem Login kopieren
Ergebnis der Programmausführung:

Fatal error:  Call to undefined method User::getAge() in
E:\PHPProjects\NowaMagic\php\php_InstanceofOperator.php on line 99
Nach dem Login kopieren
Verwenden Sie den Operator „instatnceof“, um vor der Operation eine Typbeurteilung durchzuführen. Um die

Sicherheit des Codes zu gewährleisten.

<?php
class User{
private $name;
public function  getName(){
return "UserName is ".$this->name;
}
}
class NormalUser extends User {
private $age = 99;
public function getAge(){
return "age is ".$this->age;
}
}
class UserAdmin{ //操作.
public static function  getUserInfo(User $_user){
if($_user instanceof NormalUser ){
echo $_user->getAge();
}else{
echo "类型不对,不能使用这个方法.";
}
}
}
$User = new User(); // 这里new的是User.
UserAdmin::getUserInfo($User);
?>
Nach dem Login kopieren
Ergebnis der Programmausführung: Der Typ ist falsch und diese Methode kann nicht verwendet werden.

Das obige ist der detaillierte Inhalt vonWas ist die Instanz des PHP-Typoperators? Wie benutzt man?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage