Heim > Artikel > Backend-Entwicklung > Was ist die Instanz des PHP-Typoperators? Wie benutzt man?
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){ //做一些有用的事情 }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); ?>Ergebnis der Programmausführung: Alter ist 99Weil 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); ?>Ergebnis der Programmausführung:
Fatal error: Call to undefined method User::getAge() in E:\PHPProjects\NowaMagic\php\php_InstanceofOperator.php on line 99Verwenden 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); ?>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!